数据结构学习总结——串数组广义表

定义:串(或字符串)是由零个或多个字符组成的有限序列,一般记为\(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;

posted @ 2021-09-23 11:18  傲晨宇  阅读(147)  评论(0)    收藏  举报