数据结构学习总结——串数组广义表
串
定义:串(或字符串)是由零个或多个字符组成的有限序列,一般记为\(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号