串的类型定义


ADT String{

    数据对象:D={a,|a,∈CharacterSet,i=1,2,…,n,n≥O}

    数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,…,n}

    基本操作:

        (1)StrAssign (&T,chars)	//串赋值

        (2)StrCompare(S,T)	//串比较

        (3)StrLength (S)	//求串长

        (4)Concat(&T,S1,S2)	//串连结

        (5)SubString(&Sub,S,pos,len)	//求子串

        (6)StrCopy(&T,S)	//串拷贝

        (7)StrEmpty(S)	//串判空

        (8)ClearString (&S)	//清空串

        (9)Index(S,T,pos)	//子串的位置

        (11)Replace(&S,T,V)	//串替换

        (12)Strlnsert(&S,pos,T)	//子串插入

        (12)StrDelete(&S,pos,len)	//子串删除

        (13)DestroyString(&S)	//串销毁

}ADT String

串的顺序存储结构


#define MAXLEN 255

typedef struct{

    char ch[MAXLEN+1];	//存储串的一维数组

    int length;	//串的当前长度长度

}SString;

串的链式存储结构


#define CHUNKSIZE 80	//块的大小可由用户定义

typedef struct Chunk{

    char ch[CHUNKSIZE];

    struct Chunk *next;

}Chunk;



typedef struct{ 

    Chunk *head,*tail;	//串的头指针和尾指针

    int curlen;	//串的当前长度

}LString;	//字符串的块链结构

Snipaste_2023-08-30_17-21-12