数据结构4串.ppt
《数据结构4串.ppt》由会员分享,可在线阅读,更多相关《数据结构4串.ppt(26页珍藏版)》请在第壹文秘上搜索。
1、第4 4章 串(StringString)2023-3-214.1 4.1 串类型的定义串类型的定义4.2 4.2 串的表示和实现串的表示和实现4.3 4.3 串的模式匹配算法串的模式匹配算法2023-3-22记为:记为: s = a1 a2 . an (n0 ) 串名串名串值(用串值(用 括起来)括起来)串即字符串,是由零个或多个字符组成的有限序列,是数据串即字符串,是由零个或多个字符组成的有限序列,是数据元素为单个字符的特殊线性表。元素为单个字符的特殊线性表。4.1 4.1 串类型的定义串类型的定义隐含结束符隐含结束符00 ,即,即ASCIIASCII码码NULLNULL为何要单独讨论为何
2、要单独讨论“串串”类型?类型?1 1) 字符串操作比其他数据类型更复杂(如拷贝、连接操作)字符串操作比其他数据类型更复杂(如拷贝、连接操作)2 2) 程序设计中,处理对象很多都是串类型。程序设计中,处理对象很多都是串类型。若干术语:若干术语:2023-3-23串长:串长:串中字符的个数(串中字符的个数(n0n0). n=0 . n=0 时称为空串时称为空串 。空格串:空格串:由一个或多个空格符组成的串。由一个或多个空格符组成的串。问:空串和空格串有无区别?问:空串和空格串有无区别?答:答:有区别。有区别。空串空串(Null String)(Null String)是指长度为零的串;是指长度为零
3、的串;而空格串而空格串(Blank String),(Blank String),是指包含一个或多个空白字是指包含一个或多个空白字符符 ( (空格键空格键) )的字符串的字符串. .2023-3-24 子串:子串:子串位置:子串位置:字符位置:字符位置: 串相等:串相等:例例1:现有以下现有以下4个字符串:个字符串:a =BEI b =JING c = BEIJING d = BEI JING问:问: 他们各自的长度?他们各自的长度?a是是c和和d的子串,在的子串,在c和和d中的位置都是中的位置都是1串串S S中任意个连续的字符序列叫中任意个连续的字符序列叫S S的子串的子串; S; S叫叫主
4、串主串。子串的第一个字符在主串中的序号。子串的第一个字符在主串中的序号。字符在串中的序号。字符在串中的序号。串长度相等,且对应位置上字符相等。串长度相等,且对应位置上字符相等。 a是哪个串的子串?在主串中的位置是多少?是哪个串的子串?在主串中的位置是多少?a =3,b =4,c = 7,d=8“空串是任意串的子串;任意串空串是任意串的子串;任意串S S都是都是S S本身的子串,除本身的子串,除S S本身本身外,外,S S的其他子串称为的其他子串称为S S的的真子串真子串。” 数据结构与算法数据结构与算法中山大学出版社中山大学出版社 空串是哪个串的子串?空串是哪个串的子串? a是不是自己的子串?
5、是不是自己的子串?串的抽象数据类型定义(参见教材P71)2023-3-25C语言中已有类似串运算函数!语言中已有类似串运算函数!ADT StringObjects: D=ai | aiCharacterSet, i=1, 2,,n, n0Relations: R1= | ai-1,ai D, i=2, ,nfunctions: /至少有至少有1313种基本操作种基本操作StrAssign(&T, chars) / 串赋值串赋值,生成值为,生成值为charschars的串的串T TStrCompare(S,T) / 串比较串比较,若,若STST,返回值大于,返回值大于0 0 StrLength(
6、S) / 求串长求串长,即返回串,即返回串S S中的元素个数中的元素个数 Concat(&T, S1, S2) / 串连接串连接,用,用T T返回返回S1S1S2S2的新串的新串 SubString(&Sub, S, pos, len) / 求求S S中中pospos起长度为起长度为lenlen的的子串子串 StrCopyStrCopy(&T,S&T,S) /由串由串S S复制得到复制得到T T Index(S, T, pos) /子串定位函数(模式匹配),子串定位函数(模式匹配),返回位置返回位置 Replace(&S, T,V) / / 用子串用子串V V替换替换子串子串T TADT St
7、ring最最小小操操作作子子集集复习:复习:C C语言中常用的串运算语言中常用的串运算2023-3-26 C C串比较串比较:int strcmp(char *s1,char *s2); 求串长:求串长:int strlen(char *s); 串连接:串连接:char strcat(char *to,char *from) 子串子串T T定位:定位:char strchr(char *s,char *c);参考参考C语言书语言书注:用注:用C处理字符串时,要调用标准库函数处理字符串时,要调用标准库函数 #include 类类CStrCompare(S,T) StrLength(S)Conca
8、t(&T, S1, S2)Index(S, T, pos)2023-3-27例如:例如:可利用串比较、求串长和求子串等操作实现定位函数可利用串比较、求串长和求子串等操作实现定位函数Index(S,T, pos).算法基本思想:算法基本思想:在主串在主串S中取从第中取从第i(i=pos)个字符起,)个字符起,取长度和串取长度和串T相等的子串和串相等的子串和串T比较,比较,若相等,则返回值为若相等,则返回值为i否则否则i+,直到,直到S中不存在和中不存在和T相等的子串为止。相等的子串为止。StrCompare(SubString(S,i,StrLength(T),T)=?02023-3-28Int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构