串
串的定长顺序存储表示
串的最长只能个定义为255,由于unsigned char这个数据类型最大能够存放的数字为255,如果采用超过255那么第一个字符单元将无法存储这个字符串的长度
#define Maxsrelenth 255
typedef unsigned char Sstring[Maxsrelenth+1];
//0号元素用来存储字符串的长度
特点:串的长度可以在这个定义的范围内随意设定,超出的部分将会被舍去,这个过程我们称之为截断
串的堆分配存储表示
typedef struct {
int *ch;
int lenth;
}HString;
堆分配是可大可小的,不同的是,下表为0的应该参与复制而不是记录长度
串的块链存储表示
存储密度=存储元素所占存储位/实际分配的存储位
未来提高存储密度,每个节点存储的不是一个字符而是一个字符串(电子书就是采用这样的存储方式进行存储)
串的模式匹配算法
INDEX(S,T,pos)
返回主串中和T相同的子串在第pos个字符之后第一次出现的位置,否则函数的值为0
采用定长存储表示时
简单算法
int Index(SString S,SString T,int pos)
{
while(i<=S[0]&&j