考研数据结构笔记——第四章 串

本文详细介绍了串的存储结构,包括静态数组、动态数组和链式存储,并探讨了串的基本操作如求子串、比较和定位。此外,重点讲解了模式匹配算法,包括朴素模式匹配及其时间复杂度分析,以及KMP算法和优化的nextval数组概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录:

一:串的定义存储结构

1.静态数组实现(定长顺序存储)

2.动态数组实现(堆分配存储)

3.初始化

4.串的链式存储(块链存储)

二:串的基本操作

1.求子串 SubString(&Sub,S,pos,len)

2.比较操作 StrCompare(S,T)

3.定位操作 Index(S,T)

三:模式匹配算法 

1.朴素模式匹配算法

1.1 带k

1.2 不带k

2.KMP算法

3.得到next数组

4.KMP算法优化——nextval数组


串的基本操作

假设有串T=“”,S=”iPhone 11 Pro Max?”,W=“Pro”

StrAssign(&T,chars):赋值操作。把串T赋值为chars。
StrCopy(&T,S):复制操作。由串S复制得到串T。
StrEmpty(S):判空操作。若S为空串,则返回TRUE,否则返回FALSE。
StrLength(S):求串长。返回串S的元素个数。
ClearString(&S):清空操作。将S清为空串。
DestroyString(&S):销毁串。将串S销毁(回收存储空间)。
Concat(&T,S1,S2):串联接。用T返回由S1和S2联接而成的新串
SubString(&Sub,S,pos,len):求子串。用Sub返回串S的第pos个字符起长度为len的子串。
Index(S,T):定位操作。若主串S中存在与串T值相同的子串,则返回它在主串S中第一次出现的
位置;否则函数值为0。
StrCompare(S,T):比较操作。若S>T,则返回值>0;若S=T,则返回值=0;若S<T,则返回值<0。

</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值