数据结构(C++)串.ppt
《数据结构(C++)串.ppt》由会员分享,可在线阅读,更多相关《数据结构(C++)串.ppt(54页珍藏版)》请在课桌文档上搜索。
1、1,考题,算法题(本题12分)假设以I和O分别表示入栈和出栈操作,栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列。称可以操作的序列为合法序列,否则称为非法序列。1.下面所示的序列中哪些是合法的?A.IOIIOIOO B.IOOIOIIOC.IIIOIOIO D.IIIOOIOO2.通过对问题1的分析,写出一个算法判定给所给的操作序列是否合法。若合法则返回true,否则返回false。(假定被判定的操作序列已存入一维数组中。),2,#define m 100#define true 1#define false 0int JudgeS(char s)char Stackm
2、;int top=-1,i=0;while(si!=#)if(si=I)top+;Stacktop=si+;else if(si=0)if(top=0)top-;i+;else return false;else return true;,3,Essential of Lecture Eight:,一、串的定义 二、串类的实现 三、串的模式匹配 四、一些应用,第八讲 串,难点,4,一、串的定义 string,串是零个或多个字符组成的有限序列。一般记作S=“a0a1a2an-1“(n=0)ai(0in-1)可以是字母、数字或其它字符;,串的应用非常广泛,许多高级语言中都把串的作为基本数据类型。在
3、事务处理程序中,顾客的姓名、地址货物的名称、产地可作为字符串处理,文本文件中的每一行字符等也可作为字符串处理。串可以看成字符类型的顺序表。,5,一、串的定义 string,例:(1)a=“This is a string”(2)b=“string”(3)c=“”(4)d=“”(5)e=“你好”说明:(1)串中包含的字符个数,称为串的长度。长度为0的串称为空串,它不包括任何字符;(2)串中所包含的字符可以是字母、数字或其他字符,这依赖于具体计算机所允许的字符集。,6,一、串的定义 string,空 串n=0的串子 串串中若干相邻字符组成的子序列主 串包含子串的串空格串仅含有空格字符的串(n不为0
4、)串相等设 s1=a11,an1 s2=a12,an2 若 n1=n2且ai1=ai2(1in1)则 s1=s2,术语:,7,1void Copy(String©,const String&original)初始条件:串original已存在。操作结果:将串original复制得到一个串copy。2bool Empty()const初始条件:串已存在。操作结果:如串为空则返回true,否则返回false。3int Length()const初始条件:串已存在。操作结果:返回串的长度,即串中的字符个数。,串的基本操作,一、串的定义 string,8,4void Concat(String
5、&addTo,const String&addOn)初始条件:串addTo和addOn已存在。操作结果:将串addOn联接到串addTo的后面。5String SubString(const String&s,int pos,int len)初始条件:串存在,且0poss.Length(),0 lens.Length()pos+1。操作结果:返回从第pos个字符开始长度为len的子串。,串的基本操作,一、串的定义 string,9,6int Index(const String&text,const String&target,int pos=0)初始条件:串text和串target都存在,串
6、target非空,且0 pos text.Length()。操作结果:返回串text中第pos个字符后第一次出现的串target的位置。,串的基本操作,一、串的定义 string,10,原始的C风格的串,容易出问题。char*s;在C+在头文件string中已含了一种安全的字符串实现,但由于这个库没有包含在一些较老的C+编译器中,因此本节将设计自已的安全的String类,使用面向对象技术来克服C风格的串中存在的问题。,二、字符串的实现,11,class String protected:/串实现的数据成员:char*strVal;/串值int length;/串长public:/抽象数据类型方
7、法声明及重载编译系统默认方法声明:String();/构造函数 virtual String();/析构函数String(const String/从C风格串转换的构造函数,串类的实现,12,String(LinkList,13,void Write(const String/求串s的第pos个字符开始的长度为len的子串,串相关操作,14,bool operator=(const String/重载关系运算符!=,15,串构造函数(1)String:String(const char*inString)/操作结果:从C风格串转换构造新串转换构造函数length=strlen(inString
8、);/串长strVal=new charlength+1;/分配存储空间 strcpy(strVal,inString);/复制串值,16,串构造函数(2)String:String(LinkList/串值以0结束,17,将C+串转换为C语言串const char*String:CStr()const/操作结果:将串转换成C风格串return(const char*)strVal;/串值类型转换,18,串比较实现bool operator=(const String,19,进一步串操作示例void Concat(String/释放copy,20,模式匹配:在T中查找与P相同的子串第一次出现的位
9、置的过程。Pattern matching主串也称为目标串Target子串也称为模式串Pattern应用:文本编辑中经常搜索某个子文本,又如分子生物学中,利用匹配算法从DNA序列中提取信息,获得其中的某种模式串。,三、串的模式匹配,21,三、串的模式匹配,简单模式匹配算法,22,Sub!=p,Sub!=p,Sub!=p,三、串的模式匹配,简单模式匹配算法,23,匹配成功,三、串的模式匹配,Sub!=p,Sub!=p,Sub=p,简单模式匹配算法,24,int SimpleIndex(const String,简单模式匹配算法,25,while(i T.Length()/匹配失败,26,简单模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构

链接地址:https://www.desk33.com/p-229767.html