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

定义:串(或字符串)是由零个或多个字符组成的有限序列,一般记为\(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  傲晨宇  阅读(132)  评论(0)    收藏  举报