数据结构学习总结——串数组广义表
串
定义:串(或字符串)是由零个或多个字符组成的有限序列,一般记为\(S="a_{1}a_{2}....a_{n}"\)
值:双引号括起来的字符序列是串的值。
长度:串中字符的数目n称为串的长度。
空串:零个字符的串称为空串,其长度为零。
子串:串中任意个连续的字符组成的子序列称为该串的子串
主串:包含子串的串称为主串。
位置:通常称字符在序列中的序号为该字符在串中的位置。
串的相等:只有当两个串的长度相等,并且各个对应位置的字符都相等时才相等。
空格串:只有一个或者多个空格组成的串称为空格串。
串的存储结构
//-----串的定长顺序存储结构------ #define MAXLEN 255 //串的最大长度 typedef struct{ char ch[MAXLEN+1]; //存储串的一维数组 int length; //串的当前长度 } SString;
////---串的堆式顺序存储结构(动态分配) typedef struct { char *ch; //若是非空串,则按串长分配存储区,否则ch为NUll int length; //串的当前长度 }HString;
串的链式存储结构
///-----串的链式存储结构----- #define CHUNKSIZE 80 //用户定义块的大小 typedef struct Chunk { char ch[CHUNKSIZE]; struct Chunk *next; } Chunk; typedef struct{ Chunk *head,*tail; //串的头和尾指针 int length; ///串的当前长度 }LString;

浙公网安备 33010602011771号