数据结构chap串学习教案.pptx
《数据结构chap串学习教案.pptx》由会员分享,可在线阅读,更多相关《数据结构chap串学习教案.pptx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数据结构(sh j ji u)chap串串第一页,共22页。目录(ml)4.1串的类型串的类型(lixng)的定义的定义4.2 串的表示串的表示(biosh)和实现和实现结束放演第1页/共22页第二页,共22页。4.1串类型串类型(lixng)的定义的定义4.1.1 基本概念 1串的定义串的定义 串串(string)是是由由零零个个或或多多个个字字符符组组成成的的有有限限序序列列,记记作作s=a1a2an(n=0),其其中中s为为串串的的名名字字,用用成成对对的的单单引引号号括括起起来来的的字字符符序序列列为为串串的的值值,但但两两边边的的单单引引号号不不算算串串值值,不不包包含含(b
2、ohn)在在串串中中。ai(1in)可可以以是是字字母母、数数字字或或其其它字符。它字符。n为串中字符的个数,称为串的长度。为串中字符的个数,称为串的长度。2空串空串不不含含任任何何字字符符的的串串称称为为(chn wi)空空串串,它它的的长长度度n=0,记为,记为s=,通常记为,通常记为。第2页/共22页第三页,共22页。3空白串空白串(空格串空格串)含含有有(hn yu)一一个个或或多多个个空空格格的的串串,称称为为空空白白串串,它它的的长长度度n=串中空格字符的个数,例如:串中空格字符的个数,例如:s=,长度为,长度为1。4子串、主串子串、主串 若若一一个个串串是是另另一一个个串串中中连
3、连续续(linx)的的一一段段,则则这这个个串串称称为为另另一一个个串串的的子子串串,而而另另一一个个串串相相对对于于该该串串称称为为主主串串。例例如如,串串s1=“abcdefg”,s2=“fabcdefghxyz”,则则s1为为s2的的子子串串,s2相相对于对于s1为主串。为主串。另外,空串是任意串的子串,任意串是自身的子串。问题:若一个串的长度为n,则它的子串数目(shm)和真子串个数分别为多少(除串本身以外的子串都称为真子串)?第3页/共22页第四页,共22页。5.子串在主串中的位置 既子串的第一个字符在主串中的位置表示(biosh)。例如:串s1=CD在s=ABCDECFG中的位置6
4、.串相等 两个串的长度(chngd)相等当且仅当两个串的值相等 各个对应位置的字符都相等第4页/共22页第五页,共22页。串的基本操作串的基本操作StrAssign(&T,chars)StrAssign(&T,chars)生成一个值等于生成一个值等于charschars的串的串T TSubString(&sub,s,pos,len)SubString(&sub,s,pos,len)用用sub sub 返回串返回串S S的第的第pospos个字符起个字符起长度为长度为len len 的子串的子串Concat(&T,s1,s2)TConcat(&T,s1,s2)T为为s1,s2s1,s2连接而成的
5、新串连接而成的新串Replace(&S,T,V)Replace(&S,T,V)用用V V替换替换S S中出现的所有与中出现的所有与T T相等相等(xingdng)(xingdng)的不重叠子串。的不重叠子串。Index(S,T)Index(S,T)若若S S中存在串中存在串T T值相同的子串,返回其在主串值相同的子串,返回其在主串S S中第一次出现的位置,否则函数返回值为中第一次出现的位置,否则函数返回值为0 0Strcompare(S,T)ST Strcompare(S,T)ST 返回值返回值00 S=T S=T 返回值返回值=0=0 ST ST 返回值返回值00第5页/共22页第六页,共2
6、2页。例:S=I am a Student T=Good Q=workerStrlength(S)=14Strlength(S)=14SubString(S,8,7)=SubString(S,8,7)=StudentStudent Index(S,Index(S,a a)=3 Index(S,T)=0)=3 Index(S,T)=0Replace(S,Replace(S,StudentStudent,Q)=,Q)=I am a workerI am a worker Concat(SubString(S,6,2),Concat(T,SubString(S,7,8)Concat(SubStrin
7、g(S,6,2),Concat(T,SubString(S,7,8)=Concat(=Concat(a a ,Concat(,Concat(GoodGood,Student Student)=a Good Studenta Good Student 第6页/共22页第七页,共22页。4.1.2 串的抽象数据类型的定义描述串的抽象数据类型的定义描述 P71注意:注意:串串的的逻逻辑辑结结构构与与线线性性表表及及相相似似,但但基基本本操操作作(cozu)和和线线性性表表有有很很大大差差别别,操操作作(cozu)对对象象而而言言,线线性性表表为为单单个个对对象象作作为为操操作作(cozu)对对象象,
8、而而串串以以串串的的整整体体(子子串串)作作为为操操作作(cozu)对象。对象。串串类类型型的的最最小小操操作作(cozu)子子集集:StrAssign、StrCompare、StrLength、Concat、SubString 例如:算法例如:算法 4.1第7页/共22页第八页,共22页。4.2 串的表示串的表示(biosh)和实现和实现4.2.1 定长顺序存储表示(biosh)4.2.2 串的指针表示(biosh)4.2.3 串的块链存储表示(biosh)4.2.4 串的堆分配存储表示(biosh)第8页/共22页第九页,共22页。4.2.1 4.2.1 定长顺序存储表示定长顺序存储表示(
9、biosh)(biosh)4.2.1.1 4.2.1.1 定义定义 定长顺序存储表示定长顺序存储表示,也称为静态存储分配的顺应表。它也称为静态存储分配的顺应表。它是用一组连续的存储单元来存放串中的字符序列。所谓是用一组连续的存储单元来存放串中的字符序列。所谓定长顺序存储结构,是直接使用定长的字符数组来定义,定长顺序存储结构,是直接使用定长的字符数组来定义,数组的上界预先给出:数组的上界预先给出:#define MAXSTRLEN 255/#define MAXSTRLEN 255/一个固定长度的存储区一个固定长度的存储区 /串的长度在这个范围内随意,超过串的长度在这个范围内随意,超过(chog
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 chap 学习 教案
限制150内