数据结构课件(部分6).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构课件(部分6).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 部分
- 资源描述:
-
1、1234基本操作的功能说明基本操作的功能说明567上述上述13种基本操作中种基本操作中,下面下面5种操作构成最小操作子集种操作构成最小操作子集: 串赋值串赋值 StrAssign; 串比较串比较 StrCompare; 求串长求串长 StrLength; 串联结串联结 Concat; 求子串求子串 Substring;其它操作可以用其实现其它操作可以用其实现例如定位函数例如定位函数Index(S,T,pos)的算法如右的算法如右:int Index(String S, String T, int pos) int i,n,m; String sub; if(pos 0) n = StrLeng
2、th(S); m = StrLength(T); i = pos; while(i=n-m+1) SubString(sub,S,i,m); if(StrCompare(sub,T)!=0)+i; else return i; /while / if return 0; / Index84.2 4.2 串的表示和实现串的表示和实现#define MAXSTRLEN 255 / 串的长度最大为串的长度最大为255typedef unsigned char SStringMAXSTRLEN+1; / 0号单元存放串的长度号单元存放串的长度, 其最大值刚好是其最大值刚好是255.当超出当超出2552
3、55个字符时个字符时, ,串的多余内容被舍去串的多余内容被舍去, ,叫做叫做“截断截断”以下用串联结和求子串为例介绍这种存储以下用串联结和求子串为例介绍这种存储9S1S2T0 maxstrlen0 maxstrlenS10+S20 MAXSTRLEN 时截断部分10status Concat(SString &T, SString S1, SString S2)/用用T T返回由返回由串串S1S1和和S2S2联结而成的新串。若未被截断联结而成的新串。若未被截断, ,则返回则返回1;1;否则返回否则返回0 0。 if ( S10+S20 = MAXSTRLEN) /未被截断未被截断 T1.S10
4、 = S11.S10; TS10+1. S10+S20 = S21.S20; T0 = S10+S20; uncut = 1; elseif (S10 MAXSTRLEN) / 截断截断 T1.S10 = S11.S10; TS10+1. MAXSTRLEN = S21. MAXSTRLEN-S10; T0 = MAXSTRLEN; uncut = 0; else / 截断截断(仅取仅取S1) T0. MAXSTRLEN = S10. MAXSTRLEN; uncut = 0; / if return uncut; / Concat112.2.求子串求子串SubString(&Sub,S,po
5、s,len)的算法的算法status SubString(SString &Sub, SString S, int pos, int len)/用用SubSub返回串返回串S S的第的第pospos个字符起长度为个字符起长度为lenlen的子串的子串。 其中其中,1=pos=StrLength(S) 且且 0=len=StrLength(S) -pos + 1 。 if ( pos s0 | len s0 - pos +1 ) return ERROR; Sub1.len = Spos.pos+len-1; Sub0 = len; return OK; / SubStringSSub1 pos
6、len12 也是用一组连续的存储单元存储串值的字符序列也是用一组连续的存储单元存储串值的字符序列. .但存储空间是在程序执行过程中动态分配得到的但存储空间是在程序执行过程中动态分配得到的. . 在在C C语言中语言中, ,用字符用字符“0”0”表示串的终结表示串的终结,“0”,“0”不计入串不计入串长长. .typedef struct char *ch; / 若是非空串若是非空串,则按实际长度分配则按实际长度分配,否则为否则为NULL; int length; / 串长度串长度 HString; 以下用串插入操作以下用串插入操作 StrInsert(&S,pos,TStrInsert(&S,
展开阅读全文