数据结构课上笔记8

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

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

 

一些串的类型:

 

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

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

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

主串:包含子串的串。

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

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

 

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

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

 

实现:

 

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

 

定长顺序存储表示

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

 

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

 

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

 

堆分配存储表示  

 

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

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

 

串的块链存储表示

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

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

 

 

 

 

©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值