数据结构课后习题及解析第四章_第1页
数据结构课后习题及解析第四章_第2页
数据结构课后习题及解析第四章_第3页
数据结构课后习题及解析第四章_第4页
数据结构课后习题及解析第四章_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章习题第四章习题 1 设 s I AM A STUDENT t GOOD q WORKER 给出下列操作的结果 StrLength s SubString sub1 s 1 7 SubString sub2 s 7 1 StrIndex s A 4 StrReplace s STUDENT q StrCat StrCat sub1 t StrCat sub2 q 2 编写算法 实现串的基本操作 StrReplace S T V 3 假设以块链结构表示串 块的大小为 1 且附设头结点 试编写算法 实现串的下列基本操作 StrAsign S chars StrCopy S T StrCompare S T StrLength S StrCat S T SubString Sub S pos len 4 叙述以下每对术语的区别 空串和空格串 串变量和串常量 主串和子串 串变量的名字和串变 量的值 5 已知 S xyz T x z y 试利用联接 求子串和置换等操作 将 S 转换为 T 6 S 和 T 是用结点大小为 1 的单链表存储的两个串 设计一个算法将串 S 中首次与 T 匹配的子串逆 置 7 S 是用结点大小为 4 的单链表存储的串 分别编写算法在第 k 个字符后插入串 T 及从第 k 个字符 删除 len 个字符 以下算法用定长顺序串 8 编写下列算法 1 将顺序串 r 中所有值为 ch1 的字符换成 ch2 的字符 2 将顺序串 r 中所有字符按照相反的次序仍存放在 r 中 3 从顺序串 r 中删除其值等于 ch 的所有字符 4 从顺序串 r1 中第 index 个字符起求出首次与串 r2 相同的子串的起始位置 5 从顺序串 r 中删除所有与串 r1 相同的子串 9 写一个函数将顺序串 s1 中的第 i 个字符到第 j 个字符之间的字符用 s2 串替换 10 写算法 实现顺序串的基本操作 StrCompare s t 11 写算法 实现顺序串的基本操作 StrReplace SubString sub1 s 1 7 sub1 I AM A SubString sub2 s 7 1 sub2 StrIndex s 4 A 6 StrReplace s STUDENT q s I AM A WORKER StrCat StrCat sub1 t StrCat sub2 q sub1 I AM A GOOD WORKER 4 2 编写算法 实现串的基本操作 StrReplace S T V 解答 算法如下 int strReplace SString S SString T SString V 用串 V 替换 S 中的所有子串 T int pos i pos strIndex S 1 T 求 S 中子串 T 第一次出现的位置 if pos 0 return 0 while pos 0 用串 V 替换 S 中的所有子串 T switch T len V len case 0 串 T 的长度等于串 V 的长度 for i 0 ich pos i V ch i case 0 串 T 的长度大于串 V 的长度 for i pos t ien ilen i 将 S 中子串 T 后的所有字符 S ch i t len v len S ch i 前移 T len V len 个位置 for i 0 ich pos i V ch i S len S len T len V len case len T len V len len T len V len i pos T len i S ch i S ch i T len V len for i 0 ich pos i V ch i S len S len T len V len else 替换后串长 MAXLEN 但串 V 可以全部替换 if pos V len pos T len i S ch i s ch i T len V len for i 0 ich pos i V ch i S len MAXLEN else 串 V 的部分字符要舍弃 for i 0 ich i pos V ch i S len MAXLEN switch pos StrIndex S pos V len T 求 S 中下一个子串 T 的位置 while return 1 StrReplace 附加题 用链式结构实现定位函数 解答 typedef struct Node char data struct Node next Node Lstring int strIndex Lstring S int pos Lstring T 从串 S 的 pos 序号起 串 T 第一次出现的位置 Node p q Ppos int i 0 j 0 if T next NULL S next NULL return 0 p S next q T next while p NULL j if j pos return 0 while p NULL Ppos 指向当前匹配的起始字符 if p data q data p p next q q next else 从 Ppos 指向字符的下一个字符起从新匹配 p Ppos next q T head next i if q NULL return pos i 匹配成功 else return 0 失败 第第 4 章章 串串 习题习题 1 设设 s I AM A STUDENT t GOOD q WORKER 给出下列操作的结果 给出下列操作的结果 StrLength s SubString sub1 s 1 7 SubString sub2 s 7 1 StrIndex s A 4 StrReplace s STUDENT q StrCat StrCat sub1 t StrCat sub2 q 参考答案参考答案 StrLength s 14 sub1 I AM A sub2 StrIndex s A 4 6 StrReplace s STUDENT q I AM A WORKER StrCat StrCat sub1 t StrCat sub2 q I AM A GOOD WORKER 2 编写算法 实现串的基本操作编写算法 实现串的基本操作 StrReplace S T V 3 假设以块链结构表示串 块的大小为假设以块链结构表示串 块的大小为 1 且附设头结点 且附设头结点 试编写算法 实现串的下列基本操作 试编写算法 实现串的下列基本操作 StrAsign S chars StrCopy S T StrCompare S T StrLength S StrCat S T SubString Sub S pos len 说明说明 用单链表实现 用单链表实现 4 叙述以下每对术语的区别 空串和空格串 串变量和串常量 主串和子串 叙述以下每对术语的区别 空串和空格串 串变量和串常量 主串和子串 串变量的名字和串变量的值 串变量的名字和串变量的值 5 已知 已知 S xyz T x z y 试利用联接 求子串和置换等操作 将 试利用联接 求子串和置换等操作 将 S 转换为转换为 T 6 S 和和 T 是用结点大小为是用结点大小为 1 的单链表存储的两个串 设计一个算法将串的单链表存储的两个串 设计一个算法将串 S 中中 首次与首次与 T 匹配的子串逆置 匹配的子串逆置 7 S 是用结点大小为是用结点大小为 4 的单链表存储的串的单链表存储的串 分别编写算法在第分别编写算法在第 k 个字符后插入个字符后插入 串串 T 及从第 及从第 k 个字符删除个字符删除 len 个字符 个字符 以下算法用定长顺序串 以下算法用定长顺序串 8 写下列算法 写下列算法 1 将顺序串将顺序串 r 中所有值为中所有值为 ch1 的字符换成的字符换成 ch2 的字符 的字符 2 将顺序串将顺序串 r 中所有字符按照相反的次序仍存放在中所有字符按照相反的次序仍存放在 r 中 中 3 从顺序串从顺序串 r 中删除其值等于中删除其值等于 ch 的所有字符 的所有字符 4 从顺序串从顺序串 r1 中第中第 index 个字符起求出首次与串个字符起求出首次与串 r2 相同的子串的起始位置 相同的子串的起始位置 5 从顺序串从顺序串 r 中删除所有与串中删除所有与串 r1 相同的子串 相同的子串 9 写一个函数将顺序串写一个函数将顺序串 s1 中的第中的第 i 个字符到第个字符到第 j 个字符之间的字符用个字符之间的字符用 s2 串替串替 换 换 提示提示 1 用静态顺序串 用静态顺序串 2 先移位 后复制 先移位 后复制 10 写算法 实现顺序串的基本操作写算法 实现顺序串的基本操作 StrC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论