第4章 串

第4章 串

4.1 串类型的定义

串的抽象数据类型的定义如下:在这里插入图片描述

算法4.1:利用判等、求串长和求子串等操作实现定位函数 Index(S,T,pos)

4.2 串类型的表示和实现

4.2.1 定长顺序存储表示

用定长数组描述在这里插入图片描述
算法4.2 串联接 Concat(&T,S1,S2)在这里插入图片描述
串的联结操作示意图在这里插入图片描述
算法4.3:求子串 SubString(&Sub,S,pos, len)在这里插入图片描述

4.2.2 堆分配存储表示

表示在这里插入图片描述
算法4.4:串插入操作 StrInsert(&S,pos,T)的实现在这里插入图片描述
只含最小操作子集的 HString串类型的模块说明在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.2.3 串的块链存储表示

图示

在这里插入图片描述

块链结构的说明

在这里插入图片描述

4.3 串的模式匹配算法

4.3.1 求子串位置的定位函数Index(S,T,pos)

算法4.5:用定长顺序存储结构写出不依赖于其他串操作的匹配算法,在这里插入图片描述
算法4.5的匹配过程

在这里插入图片描述

4.3.2 模式匹配的一种改进算法

KMP改进过程示例

在这里插入图片描述

利用模式的next函数进行匹配的过程示例

在这里插入图片描述

算法4.6:KMP算法(形式上和算法4.5极为相似)

在这里插入图片描述

算法4.7:仿照KMP算法,可得到求next函数值的算法

在这里插入图片描述

算法4.8:计算next函数修正值的算法

在这里插入图片描述

4.4 串操作应用举例

4.4.1 文本编辑

一段源程序(可看成文本串)

在这里插入图片描述

输入到内存后

在这里插入图片描述

假设图4.7所示文本串只占一页,且起始行号为100,则该文本串的行表如图4.8所示

在这里插入图片描述

4.4.2 建立词索引表

书目文件及其关键词索引表

在这里插入图片描述

算法4.9:

在这里插入图片描述

算法4.10:索引表上进行插入

在这里插入图片描述
其中4个操作的具体实现分别如算法4.11、4.12、4.13和4.14所示

算法4.11

在这里插入图片描述

算法4.12

在这里插入图片描述

算法4.13

在这里插入图片描述

算法4.14

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChaselWang

有用就点个赞吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值