读书笔记之《数据结构》---第四章 串

本章目录

  1. 串类型的定义
  2. 串的表示和实现
  3. 串的模式匹配算法
  4. 串操作应用举例

串类型的定义
串是由零个或多个字符组成的有限序列,一般记为s = ‘a1a2a3…an’。
s是串名,单引号内是串的值,n是串的长度,零个字符的串称为空串。

求字符串T在字符串S的位置的算法Index
算法思想:在主串S中从第i个字符起,取长度和T相等的子串与T相比,若相等,则方位位置i,若不相等,则i增加1,直至S中不存在和串T相等的子串为止。
在这里插入图片描述

串的表示和实现

定长顺序存储表示:类似于线性的顺序存储结构,用一组地址连续的存储单元存储串值得字符序列,按照预定义的大小分配固定长度的存储区。

串连接算法Concat
算法思想:串S1与串S2连接,生成串T,则串T的前一段和S1相等,后一段和S2相等
在这里插入图片描述在这里插入图片描述
求子串算法SubString(&Sub,S,pos,len)
算法思想:从S串的pos位置开始,复制长度为len的子串到Sub中
在这里插入图片描述

串的堆分配存储表示:仍以一组地址连续的存储单元存放串值字符序列,但是存储空间是在程序的执行过程中动态分配的。
在这里插入图片描述

串的块链存储表示:和线性表的链式存储结构相类似,采用链表方式存储串值。
在这里插入图片描述

串的模式匹配算法
子串的定位操作通常称为串的模式匹配。

改进的模式匹配算法KPM算法
算法思想:在主串S中对串T进行模式匹配时,当第i位失配时,并不是将T向后滑动一位,而是滑动next[i]位,算法关键是需要知道串T中每一位对应的next值。next值为T的每一位的最长前后缀匹配长度,当第i位失配后,就将T向后滑动 i - next[i]位。这样可以保证移动后的T中next[i]前的子串与S串中的相应位置的子串值都相等。
在这里插入图片描述

next值得计算算法
算法思想:next中的值是T串中的每一位的最大前后缀匹配长度 + 1。
在这里插入图片描述

串操作应用举例
1.文本编辑:文本可以看成一个文本串,该串被换页符和换行符划分成若干页和若干行。
2.建立词索引表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值