文档详情

数据结构第四章串题稿.ppt

发布:2017-03-26约6.74千字共38页下载文档
文本预览下载声明
第四章 串 基本概念 ClearString (S) 初始条件:串S存在。 操作结果:将S清为空串。 StrEmpty (S) 初始条件:串S存在。 操作结果:若S为空串,则返回TRUE,否则返回FALSE。 StrCompare (S, T) //串比较 初始条件:串S和T存在。 操作结果:若ST,则返回值0; 若S=T,则返回值=0; 若ST,则返回值0。 Concat (T, S1, S2) //串联接 初始条件:串S1和S2存在。 操作结果:用T返回由S1和S2联接而成的新串。 SubString (Sub, S, pos, len) //求子串 初始条件:串S存在,1≤pos≤StrLength(S)且0≤len≤StrLength(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存在, 1≤pos≤StrLength(S)-len+1。 操作结果:从串S中删除第pos个字符起 长度为len的子串。 2.求子串SubString(Sub, S, pos, len) 4.2.2 堆分配存储表示 4.2.3 块链存储表示 1. 串赋值 Status StrAssign(HstringT,char*chars){ // 生成一个其值等于串常量chars的串T If ( T.ch ) free (T.ch); //释放T原有空间 for(i=0,c=chars; c; ++i,++c); //求chars的长度 i If ( !i ) {T.ch=NULL; T.length=0;} else{ if(!(T.ch=(char*)malloc(i*sizeof(char)))) exit(OVERFLOW); T.ch[0…i-1]=chars[0…i-1]; T.length=i; } return OK; }// StrAssign 2.串比较 Int StrCompare(Hstring S,Hstring T){ //若ST,则返回值0; 若S=T,则返回值=0;若ST,则返回值=0 for(i=0; iS.length iT.length; ++i) if (S.ch[i]!=T.ch[i]) return S.ch[i]-T.ch[i]; Return S.length - T.length; }// StrCompare 3. 串联接 Status Concat(HstringT,HStringS1,HstringS2){ //用T返回由S1和S2联接而成的新串 if(T.ch) free(T.ch); //释放旧空间 if(!(T.ch=(char*)malloc((S1.length+S2.length)* sizeof(char)))) exit(OVERFLOW); T.ch[0…S1.length - 1]= S1.ch[0…S1.length - 1]; T.length= S1.length+ S2.length; T.ch[S1.length …T.length- 1]=S2.ch[0…S2.length- 1]; return OK; }// Concat * 4.1 串类型的定义 4.2 串的表示和实现 学习提要: 1.熟悉串的基本操作的定义,并能利用这些 基本操作来实现串的其它各种操作的方法。 2.熟练掌握在串的定长顺序存储结构上实现串的各种操作的方法。 3.掌握串的堆分配存储结构以及在其上实现串操作的基本方法。 4.了解串的块链存储结构。 重难点内容: 串的存储结构 串(string):由零个或多个字符组成的有限序列,也称字符串。记为: S = ‘a1a2a3……an’ (n≥0) 如:A= ‘BEIJING’, B=
显示全部
相似文档