数据结构课上笔记8

举报
兔老大 发表于 2021/04/22 01:30:25 2021/04/22
【摘要】 串的概念:串(字符串):是由 0 个或多个字符组成的有限序列。 通常记为:s =‘ a1 a2 a3 … ai …an  ’ ( n≥0 )。 串的逻辑结构和线性表极为相似。   一些串的类型:   空串:不含任何字符的串,长度 = 0。 空格串:仅由一个或多个空格组成的串。 子串:由串中任意个连续的字符组成的子序列。 主串:包含...

串的概念:串(字符串):是由 0 个或多个字符组成的有限序列。 通常记为:s =‘ a1 a2 a3 … ai …an  ’ ( n≥0 )。

串的逻辑结构和线性表极为相似。

 

一些串的类型:

 

空串:不含任何字符的串,长度 = 0。

空格串:仅由一个或多个空格组成的串。

子串:由串中任意个连续的字符组成的子序列。

主串:包含子串的串。

位置:字符在序列中的序号。

子串在主串中的位置:子串的首字符在主串中的位置。

 

空串是任意串的子串,任意串是其自身的子串。

串相等的条件:当两个串的长度相等且各个对应位置的字符都相等时才相等。

 

实现:

 

因为串是特殊的线性表,故其存储结构与线性表的 存储结构类似,只不过组成串的结点是单个字符。

 

定长顺序存储表示

也称为静态存储分配的顺序串。 即用一组地址连续的存储单元依次存放串中的字符序列。

 

串长:可能首字符记录(显式)或\0结尾(隐式)

 

定长顺序存储表示时串操作的缺点 :串的某些操作受限(截尾),如串的联接、插入、置换

 

堆分配存储表示  

 

存储空间在程序执行过程中动态分配,malloc() 分配一块实际串长所需要的存储空间(“堆”)

堆存储结构的优点:堆存储结构既有顺序存储 结构的特点,处理(随机取子串)方便,操作中对 串长又没有任何限制,更显灵活,因此在串处理的 应用程序中常被采用。

 

串的块链存储表示

为了提高空间利用率,可使每个结点存放多个字符 (这是顺序串和链串的综合 (折衷) ),称为块链结构。

 优点:便于插入和删除    缺点:空间利用率低 

 

 

 

 

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/83831884

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。