数据结构与算法(C++版)课件第4章 串.ppt
《数据结构与算法(C++版)课件第4章 串.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法(C++版)课件第4章 串.ppt(69页珍藏版)》请在汇文网上搜索。
1、第第4章章串串数据结构与算法数据结构与算法(C+版版)(第第2版版)4.1串类型的定义串类型的定义一、串的定义一、串的定义n(n=0)n(n=0)个字符的有限序列个字符的有限序列s=s=a a1 1,a,a2 2,a,an n 串名串名:s:s 串值串值:a:ai i(1i n)(1i n)串长串长:n:n二、串的基本术语二、串的基本术语空空 串串n=0n=0的串的串子子 串串串中若干相邻字符组成的子序列串中若干相邻字符组成的子序列主主 串串包含子串的串包含子串的串空格串空格串仅含有空格字符的串仅含有空格字符的串(n(n不为不为0)0)串相等串相等设设 s s1 1=a a1111,a,an1
2、n1 s s2 2=a a1212,a,an2n2 若若 n1=n2n1=n2且且a ai1i1=a=ai2i2(1 1i in1)n1)则则 s s1 1=s=s2 21voidCopy(CharString&target,constCharString&source)初始条件:串初始条件:串source已存在。已存在。操作结果:将串操作结果:将串source复制得到一个串复制得到一个串target。2boolEmpty()const初始条件:串已存在。初始条件:串已存在。操作结果:如串为空,则返回操作结果:如串为空,则返回true,否则返,否则返回回false。3intLength()co
3、nst初始条件:串已存在。初始条件:串已存在。操作结果:返回串的长度,即串中的字符个操作结果:返回串的长度,即串中的字符个数。数。三、串的基本术语三、串的基本术语4voidConcat(CharString&target,constCharString&source)初始条件:串初始条件:串target和和source已存在。已存在。操作结果:将串操作结果:将串source联接到串联接到串target的后面。的后面。5CharStringSubString(constCharString&s,intpos,intlen)初始条件:串存在,且初始条件:串存在,且0poss.Length(),0l
4、ens.Length()pos。操作结果:返回从第操作结果:返回从第pos个字符开始长度为个字符开始长度为len的子串。的子串。6intIndex(constCharString&target,constCharString&pattern,intpos=0)初始条件:目标串初始条件:目标串target和模式串和模式串pattern都都存在,模式串存在,模式串pattern非空,且非空,且0pos target.Length()。操作结果:返回目标串操作结果:返回目标串target中第中第pos个字符个字符后第一次出现的模式串后第一次出现的模式串pattern的位置。的位置。4.2字符串的实现
5、字符串的实现在在C+在头文件在头文件string中已含了一种中已含了一种安全的字符串实现安全的字符串实现由于这个库没有包含在一些较老的由于这个库没有包含在一些较老的C+编译器中,因此本节将设计自已编译器中,因此本节将设计自已的安全的的安全的CharString类,使用面向对类,使用面向对象技术来克服象技术来克服C风格的串中存在的问风格的串中存在的问题。题。一、串类及串相关操作一、串类及串相关操作/串类串类串类串类classCharStringclassCharString protected:protected:/串实现的数据成员串实现的数据成员串实现的数据成员串实现的数据成员:char*st
6、rVal;char*strVal;/串值串值串值串值intlength;intlength;/串长串长串长串长public:public:/抽象数据类型方法声明及重载编译系统默认方法声明抽象数据类型方法声明及重载编译系统默认方法声明抽象数据类型方法声明及重载编译系统默认方法声明抽象数据类型方法声明及重载编译系统默认方法声明:CharString();CharString();/构造函数构造函数构造函数构造函数 virtualCharString();virtualCharString();/析构函数析构函数析构函数析构函数CharString(constCharString&source);C
7、harString(constCharString&source);/复制构造函数复制构造函数复制构造函数复制构造函数CharString(constchar*source);CharString(constchar*source);/从从从从C C风格串转换的构造函数风格串转换的构造函数风格串转换的构造函数风格串转换的构造函数CharString(LinkList&source);CharString(LinkList&source);/从线性表转换的构造函数从线性表转换的构造函数从线性表转换的构造函数从线性表转换的构造函数intLength()const;intLength()const;
8、/求串长度求串长度求串长度求串长度boolEmpty()const;boolEmpty()const;/判断串是否为空判断串是否为空判断串是否为空判断串是否为空CharString&operator=(constCharStringCharString&operator=(constCharString&source);&source);/重载赋值运算符重载赋值运算符重载赋值运算符重载赋值运算符constchar*ToCStr()const;constchar*ToCStr()const;/将串转换成将串转换成将串转换成将串转换成C C风格串风格串风格串风格串constchar&operato
9、r(inti)const;constchar&operator(inti)const;/重载下标运算符重载下标运算符重载下标运算符重载下标运算符;串相关操作串相关操作串相关操作串相关操作CharStringRead(istream&input);CharStringRead(istream&input);/从输入流读入串从输入流读入串从输入流读入串从输入流读入串CharStringRead(istream&input,char&terminalChar);CharStringRead(istream&input,char&terminalChar);/从输入流读入串从输入流读入串从输入流读入串
10、从输入流读入串,用用用用terminalCharterminalChar返回串结束字符返回串结束字符返回串结束字符返回串结束字符voidWrite(constCharString&s);voidWrite(constCharString&s);/输出串输出串输出串输出串char*CStrConcat(char*target,constchar*source);char*CStrConcat(char*target,constchar*source);/C/C风格将串风格将串风格将串风格将串sourcesource连接到串连接到串连接到串连接到串targettarget的后面的后面的后面的后面v
11、oidConcat(CharString&target,voidConcat(CharString&target,constCharString&source);constCharString&source);/将串将串将串将串sourcesource连接到串连接到串连接到串连接到串targettarget的后面的后面的后面的后面串相关操作串相关操作串相关操作串相关操作char*CStrCopy(char*target,constchar*source);char*CStrCopy(char*target,constchar*source);/C/C风格将串风格将串风格将串风格将串source
12、source复制到串复制到串复制到串复制到串targettargetvoidCopy(CharString&target,voidCopy(CharString&target,constCharString&source);constCharString&source);/将串将串将串将串sourcesource复制到串复制到串复制到串复制到串targettargetchar*CStrCopy(char*target,constchar*source,intn);char*CStrCopy(char*target,constchar*source,intn);/C/C风格将串风格将串风格将串风
13、格将串sourcesource复制复制复制复制n n个字符到串个字符到串个字符到串个字符到串targettargetvoidCopy(CharString&target,voidCopy(CharString&target,constCharString&source,intn);constCharString&source,intn);/将串将串将串将串sourcesource复制复制复制复制n n个字符到串个字符到串个字符到串个字符到串targettargetintIndex(constCharString&target,intIndex(constCharString&target,co
14、nstCharString&pattern,intpos=0);constCharString&pattern,intpos=0);/查找模式串查找模式串查找模式串查找模式串patternpattern第一次在目标串第一次在目标串第一次在目标串第一次在目标串targettarget中从第中从第中从第中从第/pos/pos个字符开始出现的位置个字符开始出现的位置个字符开始出现的位置个字符开始出现的位置CharStringSubString(constCharString&s,CharStringSubString(constCharString&s,intpos,intlen);intpos,i
15、ntlen);/求串求串求串求串s s的第的第的第的第pospos个字符开始的长度为个字符开始的长度为个字符开始的长度为个字符开始的长度为lenlen的子串的子串的子串的子串booloperator=(constCharString&first,booloperator=(constCharString&first,constCharString&second);constCharString&second);/重载关系运算符重载关系运算符重载关系运算符重载关系运算符=booloperator(constCharString&first,booloperator(constCharString
16、&first,constCharString&second);constCharString&second);/重载关系运算符重载关系运算符重载关系运算符重载关系运算符(constCharString&first,booloperator(constCharString&first,constCharString&second);constCharString&second);/重载关系运算符重载关系运算符重载关系运算符重载关系运算符 booloperator=(constCharString&first,booloperator=(constCharString&first,constCha
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载共享资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与算法C+版课件第4章 数据结构 算法 C+ 课件