欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第4章串.ppt

    • 资源ID:388551       资源大小:444KB        全文页数:22页
    • 资源格式: PPT        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章串.ppt

    1、第4章 串,数据结构(类C语言描述),目录,4.1串的类型的定义,4.2 串的表示和实现,结束放演,4.1串类型的定义,4.1.1 基本概念,1串的定义串( string) 是由零个或多个字符组成的有限序列,记作s=a1a2an(n=0),其中s为串的名字,用成对的单引号括起来的字符序列为串的值,但两边的单引号不算串值,不包含在串中。ai(1in)可以是字母、数字或其它字符。n为串中字符的个数,称为串的长度。,2空串 不含任何字符的串称为空串,它的长度n=0,记为s=,通常记为 。,3空白串(空格串)含有一个或多个空格的串,称为空白串,它的长度n=串中空格字符的个数,例如:s= ,长度为1。,

    2、4子串、主串若一个串是另一个串中连续的一段,则这个串称为另一个串的子串,而另一个串相对于该串称为主串。例如,串s1=“abcdefg”,s2=“fabcdefghxyz”,则s1为s2的子串,s2相对于s1为主串。,另外,空串是任意串的子串,任意串是自身的子串。问题:若一个串的长度为n,则它的子串数目和真子串个数分别为多少(除串本身以外的子串都称为真子串)?,5. 子串在主串中的位置既子串的第一个字符在主串中的位置表示。例如:串s1=CD在s=ABCDECFG中的位置,6. 串相等两个串的长度相等 当且仅当两个串的值相等各个对应位置的字符都相等,串的基本操作,StrAssign(&T,char

    3、s) 生成一个值等于chars的串T SubString(&sub,s,pos,len) 用sub 返回串S的第pos个字符起长度为len 的子串 Concat(&T,s1,s2) T为s1,s2连接而成的新串 Replace(&S,T,V) 用V替换S中出现的所有与T相等的不重叠子串。 Index(S,T) 若S中存在串T值相同的子串,返回其在主串S中第一次出现的位置,否则函数返回值为0 Strcompare(S,T) ST 返回值0S=T 返回值=0ST 返回值0,例:S=I am a Student T=Good Q=worker Strlength(S)=14 SubString(S,

    4、8,7)=Student Index(S, a)=3 Index(S,T)=0 Replace(S,Student,Q)= I am a worker Concat(SubString(S,6,2),Concat(T,SubString(S,7,8)=Concat(a ,Concat(Good, Student)=a Good Student,4.1.2 串的抽象数据类型的定义描述 P71 注意: 串的逻辑结构与线性表及相似,但基本操作和线性表有很大差别,操作对象而言,线性表为单个对象作为操作对象,而串以串的整体(子串)作为操作对象。 串类型的最小操作子集:StrAssign、StrCompa

    5、re、StrLength、Concat、SubString例如:算法 4.1,4.2 串的表示和实现,4.2.1 定长顺序存储表示 4.2.2 串的指针表示 4.2.3 串的块链存储表示 4.2.4 串的堆分配存储表示,4.2.1 定长顺序存储表示,4.2.1.1 定义 定长顺序存储表示,也称为静态存储分配的顺应表。它是用一组连续的存储单元来存放串中的字符序列。所谓定长顺序存储结构,是直接使用定长的字符数组来定义,数组的上界预先给出:#define MAXSTRLEN 255 /一个固定长度的存储区/串的长度在这个范围内随意,超过这个长/度的串值则被舍去,既串被截断typedef unsign

    6、ed char sstringMAXSTRLEN+1;/0号单元存放串的长度sstring s; /s是一个可容纳255个字符的顺序串,串的顺序存储方式1,串的顺序存储方式2-定长顺序存储方式,4.2.1.2 运算,1.串联接Concat( /Concat,2.求子串SubString( /SubString,4.2.1.3 优缺点优点: 连续顺序存储,特别适合于子串的搜索缺点:a.对串进行插入或删除子串操作时,要移动大量字符,耗时太多b.串的长度必须预先确定,这不容易做到。,4.2.2 串的指针表示,例如:S=“abcdef”的存储结构具体形式见图4-4。,优缺点:优点:a. 在对串进行子串

    7、的插入和删除时,只要修改相应的指针就可以完成b. 对串的长度没有限制,在存储空间足够大的情况下,可以表示任意长度的串缺点:a. 以增加存储空间为代价b. 沿着指针作在子串的顺序搜索需要比定长顺序表示下子串的搜索花更多的时间,4.2.3 串的块链存储表示(很少使用,前面两种的折中方式),例如:串S=“abcdef”的存储结构具体形式见图4-5。每块大小为4,划分成两块,并且链表带头结点。,4.2.4 串的堆分配存储表示(根据串的具体长度分配空间,应用最多),1. 特点所有串的串值都存储在地址连续的一个存储单元序列中,而每个串的首地址是在算法执行过程中动态分配的,串的操作仍是基于”字符序列的复制“进行。,2. 串的堆分配存储表示typedef struct int length; /串长char *ch; /若是非空串,则按串长分配存储区,否则ch为NULL HString;,Status StrInsert(HString /StrInsert,注意:第pos个字符的时间存储位置:定长顺序 pos 实际串存储位置下标从1开始堆分配存储 pos-1 下标从0开始,作业:4.54.6,


    注意事项

    本文(第4章串.ppt)为本站会员(syndromehi216)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开