第十章 数据结构 串的定义,串的存储

串的基本定义

是一种特殊的线性表。

其特殊性体现在它的数据元素仅由一个字符组成。

计算机非数值处理的对象经常是字符串数据。比如我们常用的word和wps软件,处理的对象就是串。

串还有自身的特性, 常常把一个串作为一个整体来处理。

查找某一个单词或某一句话, 很少去查某一个字符。

串的操作对象依然是一个串。

这种操作就是在一个主串中查找一个子串。这里查找的对象不是一个数据元素, 而是若干个数据元素组成的一个序列, 也就是串。

串是由零个或多个任意字符组成的字符序列。
记作:S = “s1 s2 … sn”
空串的长度为0.

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

第十章 数据结构 串的定义,串的存储就是按字典序比较。

第十章 数据结构 串的定义,串的存储第十章 数据结构 串的定义,串的存储

常见例题

第十章 数据结构 串的定义,串的存储
A
第十章 数据结构 串的定义,串的存储为0.

第十章 数据结构 串的定义,串的存储

串的存储方式

用一组地址连续的存储单元存储串值中的字符序列, 按照数组预定义的大小, 为每个定义的串变量分配一个固定长度的存储区, 一般用定长数组来定义。

第十章 数据结构 串的定义,串的存储第一个方法, 用一个last指针来指向最后一个字符。
typedef struct
{
char ch[Max];
int last;
}SeqString;
第二种方法:在串尾加’\0’
第三种我觉得最好就是将0下标空出来,剩余的进行存储,这样下标即存储位置。

第十章 数据结构 串的定义,串的存储
第十章 数据结构 串的定义,串的存储第十章 数据结构 串的定义,串的存储

块链 与线性表的关系。

如果一个结点放一个元素,则插入,删除方式和线性表一样。
而如果每个结点存放多个字符, 插入 删除的处理方法就比较复杂了。