如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第4章串串的定义串是由零个或多个字符组成的有限序列,一般记为s=‘a1a2…an’(n≥0)串中字符的数目n称为串的长度。零个字符的串称为空串。串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。字符在序列中的序号为该字符在串中的位置。子串在主串中的位置以子串第一个字符在主串的位置表示。注意:单引号是串的标志,不属于串值;空串是任何串的子串。设有四个串,S1=’BEI’,S2=’JING’,S3=’BEIJING’,S4=’BEIJING’,S5=‘’S1的串值为,长度为。S4的子串为_________________。S1在S3,S4的位置相同S2在S3,S4的位置相同串的抽象数据类型定义ADTString{数据对象:D={ai|aiCharacterSet,i=1,2,…,n,n0}数据关系:R1={<ai-1,ai>|ai-1,aiD,i=2,…,n}基本操作:……}ADTString;串的基本操作串赋值StrAssign(&T,chars)求串长StrLength(S)串联接Concat(&T,S1,S2)串比较StrCompare(S,T)求子串SubString(&Sub,S,pos,len)串复制StrCopy(&T,S)查找子串的位置Index(S,T,pos)替换子串Replace(&S,T,V)插入子串StrInsert(&S,pos,T)删除子串StrDelete(&S,pos,len)串定长顺序存储表示用一组地址连续的存储单元存储串值的字符序列。堆分配存储表示仍用一组地址连续的存储单元存储串值的字符序列,但它们的存储空间是在程序执行过程中动态分配而得。堆分配存储实现串的块链存储表示以链表存储串值时,除头指针外还可附设一个尾指针指示链表中的最后一个结点,并给出当前串的长度。称如此定义的串存储结构为块链结构。单字符结点的串的链式存储结构#defineCHUNKSIZE10typedefstructChunk{charch[CHUNKSIZE];structChunk*next;}Chunk;Typedefstruct{Chunk*head,*tail;intcurlen;}Lstring;4.4串操作应用举例4.4串操作应用举例