四章节串.ppt
《四章节串.ppt》由会员分享,可在线阅读,更多相关《四章节串.ppt(46页珍藏版)》请在三一办公上搜索。
1、第四章 串,4.1 串类型的定义4.2 串的表示和实现,4.1 串类型的定义,一、串的定义串(String)是零个或多个字符组成的有限序列。一般记作:S=a1a2a3an,串名:S串值 a1a2a3anai(1in)可以是字母、数字或其它字符;串的长度:串中所包含的字符个数;长度为零的串称为空串(Empty String),它不包含任何字符。空白串:通常将仅由一个或多个空格组成的串称为空白串(Blank String)。注意:空串和空白串的不同。,4.1 串类型的定义,串的子串:串中任意个连续字符组成的子序列称为该串的子串(SubString),包含子串的串相应地称为主串。通常将子串在主串中首
2、次出现时子串第一个字符在主串的位置,定义为子串在主串中的位置。例如:A=“This is a string”B=“is”则B是A的子串,A为主串。B在A中出现了两次,其中首次出现所对应的主串位置是3。因此,称B在A中的位置为3。特别地,空串是任意串的子串,任意串是其自身的子串。,二、串的抽象数据类型的定义ADT String 数据对象:D=ai|aiCharacterSet;i=1,2,n,;n0 数据关系:R1=|ai-1,aiD;i=2,n 基本操作:StrAssign(&T,chars)初始条件:chars是字符串常量。操作结果:生成一个其值等于chars的串T。StrCopy(&T,S
3、)初始条件:串S存在。操作结果:由串S得串T。StrEmpty(S)初始条件:串S存在。操作结果:若S为空串,则返回TRUE,否则返回FALSE。,StrLength(S)初始条件:串S存在。操作结果:则返S的元素个数,称为串的长度。StrCompare(S,T)初始条件:串S和T存在。操作结果:若ST,则返回值0;若S=T,则返回值=0;若ST,则返回值0.ClearString(&S)初始条件:串S存在。操作结果:将S清为空串。Concat(&T,S1,S2)初始条件:串S1和S2存在。操作结果:用T返回由S1和S2联接而成的新串。Substring(&Sub,S,pos,len)初始条件
4、:串S存在,1posStrLength(S)且0lenStrLength(S)-pos+1。操作结果:用sub返回串S的第pos个字符起长度为len的字符。,StrInsert(&S,pos,T)初始条件:串S和T存在,1=pos=StrLength(S)+1。操作结果:在串S的第pos个字符之前插入串T。StrDelete(&S,pos,len)初始条件:串S存在,0posStrLength(S)-len+1。操作结果:从串S中删除第pos个字符起长度为len的子串。Index(S,T,pos)初始条件:串S和T存在,T为非空串,1posStrLength(S)。操作结果:若主串S中存在和串
5、T值相同的子串,则返回它在主串S中 第pos 个字符之后第一次出现的位置;否则函数值为0。Replace(&S,T,V)初始条件:串S、T和V存在,T为非空串。操作结果:用V替换主串S中出现的所有与T相等的不重叠的子串。DestroyString(&S)初始条件:串S存在。操作结果:串S被销毁。ADT String,4.2 串的表示和实现,一、串的定长顺序存储,使用数组存储串#define maxstrlen 255typedef unsigned char SStringmaxstrlen+1;,PASCAL方式,C方式,串的长度串的实际长度可在这预定义长度范围内随意,超过预定义长度的串值则
6、被舍去,称之为“截断”。,4.2 串的表示和实现,二、串的堆分配存储在程序执行过程中从内存空闲区中动态申请满足串长的存储空间,串在其中仍是顺序存储的,称为堆结构。也称为动态存储分配的顺序表。串的堆分配存储定义 typedef struct char*ch;/若是非空串,则按串长分配存储区,否则ch为NULL int length;HString;,4.2 串的表示和实现,三、串的链式存储,存储密度:串值所占的存储空间 实际分配的存储空间,4.2 串的表示和实现,/=串的块链存储表示=#define CHUNKSIZE 80/可由用户定义的块大小typedef struct Chunk char
7、 chCUNKSIZE;struct Chunk*next;Chunk;typedef struct Chunk*head,*tail;/串的头和尾指针 int curlen;/串的当前长度Lstring,49串是任意有限个_。A符号构成的集合B符号构成的序列C字符构成的集合D字符构成的序列50串是一种特殊的线性表,其特殊性体现在_。A可以顺序存储B数据元素是一个字符C可以链接存储D数据元素可以是多个字符51以下_是”abcd321ABCD”串的子串。Aabcd B321AB C”abcABC”D”21AB”,52两个串相等必有串长度相等且_。A串的各位置字符任意B串中各位置字符均对应相等C两
8、个串含有相同的字符D两个所含字符任意53若串s=“software”,其子串的个数是_。A8 B37 C36 D9,54设s=“abcd”,s1=“123”,则执行语句s2=InsStr(s,2,s1)后,s2=_。A”123abcd”B”a123bcd”C”ab123cd”D”abc123d”55设s=“abcd”,则执行语句s2=DelStr(s,2,2)后,s2=_。A”abcd”B”abc”C”ad”D”a”,第五章 数组和广义表,5.1数组的定义,5.3矩阵的压缩存储,5.2数组的顺序表示和实现,5.4广义表的定义,5.5广义表的存储结构,数组是有限个数据元素的集合;数组的所有数组元
9、素具有相同特性;每个数组元素名由数组名和下标组成;每组下标值都有一个与该组下标相对应的数组元素值.,5.1 数组的类型定义,一、数组的定义,一维数组An:简单的线性表(a1,a2,an);二维数组Am,n:a00 a01 a02 a0,n-1 a10 a11 a12 a1,n-1 am-1,0 am-1,1 am-1,2 am-1,n-1看成由m个行向量组成的线性表,或由n个列向量组成的线性表;N维数组:看成其数据元素为n-1维数组类型的线性表。,ADT Array 数据对象:ji=0,bi-1,i=1,2,n Daj1j2jn|aj1j2jn ElemSet,n是数组的维数,bi是数组第i维
10、的长度,ji是数组元素在第i维的下标 数据关系:RR1,R2,.,Rn Ri|0 jk bk-1,1 k n 且k i,0 ji bi-2,i=2,.,n ADT Array,基本操作:,二、抽象数据类型数组的定义,二维数组的定义:,数据对象:D=aij|0ib1-1,0 jb2-1数据关系:R=ROW,COL ROW=|0ib1-2,0jb2-1 COL=|0ib1-1,0 jb2-2,数组一旦被定义,其维数和维界就不再改变,因此,除了初始化和销毁之外,数组只有两种运算:给定一组下标,读取相应的数据元素;给定一组下标,修改相应数据元素的值。数组不能进行元素的插入和删除运算。,基本操作:,In
11、itArray(&A,n,bound1,.,boundn)操作结果:若维数 n 和各维长度合法,则构造相应的数组A,并返回OK。,DestroyArray(&A)操作结果:销毁数组A。,Value(A,&e,index1,.,indexn)初始条件:A是n维数组,e为元素变量,随后是n 个下标值。操作结果:若各下标不超界,则e赋值为所指定的A 的元素值,并返回OK。,Assign(&A,e,index1,.,indexn)初始条件:A是n维数组,e为元素变量,随后是n 个下标值。操作结果:若下标不超界,则将e的值赋 给所指定的A的元素,并返回OK。,5.2 数组的顺序表示和实现,类型特点:数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节

链接地址:https://www.31ppt.com/p-5380543.html