网站大量收购独家精品文档,联系QQ:2885784924

第4章 串教学课件.pptx

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 串四川的腊肉还是很有名的。春节前,各种腊肉一串一串被挂起卖,品类也多,如香肠、三线肉、排骨、香舌、猪肝等等,它们都可以被称为串,但品类不同串的类型也就不同,好比其它串就是其它串,香肠串看作字符串吧。本章讲解字符串。要求理解字符串的概念;掌握顺序串和链串的存储结构和基本操作;掌握BF和KMP模式匹配算法;灵活应用字符串。提纲4.1 串基本概念4.2 顺序串4.3 链串4.4 串的模式匹配4.5 串应用4.6 串学习总结4.1 串基本概念?串是字符串的简称,它是由零个和多个字符组成的有限序列,记作。显然,串是一种线性结构。下面介绍串的基本术语。串长度:串中所包含的字符个数n。空串:时为空串。子串:一个串中任意连续的字符组成的子序列。主串:包含子串的串。串相等:若两个串的长度相等且对应字符都相等。留意:空格算1个字符,因此空格串不是空串。4.1 串基本概念串的抽象数据接口IString描述4.2 顺序串以顺序存储结构进行存储的串称为顺序串。4.2.1 顺序串存储结构顺序串存储结构采用顺序存储方式,同顺序表存储结构,故顺序串也可以用一维数组存储,不同的是顺序串中的元素是字符或者字符串,前者用字符数组char[]存储,后者用字符串数组str[]存储,我们主要探讨的是前者。如图4.1所示。4.2.1 顺序串存储结构举例:肉联厂有台猪肉识别机器,如果是猪肉就传送过去做成火腿肠,如果是牛肉、羊肉、兔肉等就打回。在这个例子中,火腿肠严格要求是猪肉,好比字符数组或字符串数组严格要求其内的元素是字符或字符串一样的道理。4.2.2 顺序串基本操作顺序串类SqString描述4.2.2 顺序串基本操作读取第i个元素顺序串读取第i个元素操作是指获得字符串中位置序号为i的字符。4.2.2 顺序串基本操作【算法4.1】读取顺序串第i个元素。思路:利用数组的随机访问特点,在i合法情况下直接返回第i个位置的字符。代码见算法4.14.2.2 顺序串基本操作2.求子串顺序串求子串操作是指求字符串中1个指定区间的字符串。4.2.2 顺序串基本操作【算法4.2】求字符串中从指定开始位置begin到结束位置end-1的子串。思路:(1)判断begin和end参数的合法性,若不合法返回异常否则执行(2); (2)从begin位置开始遍历,读取的字符放入1个字符数组temp[]中; (3)重复(2),直到遍历完end-1位置处的字符; (4)将用temp[]构造1个字符串,并返回该字符串。代码见算法4.24.2.2 顺序串基本操作【思考与练习4.1】利用算法4.1是否可以实现算法4.2,若可以请写出实现算法。答:可以。将算法4.2中for循环中的语句改成:tmp[i - begin] = new 算法4_1().algorithm4_1(i);调用4.1算法即可。4.2.2 顺序串基本操作3.插入子串顺序串插入子串操作是指在指定位置之前插入指定字符串。4.2.2 顺序串基本操作【算法4.3】在字符串的第i个字符之前插入子串str。思路:(1)判断i的合法性,若不合法返回异常,否则执行(2); (2)扩容子串的长度; (3)从i位置的字符开始到最后1个字符,向后移动子串长度个位置; (4)将子串str插入到i位置; (5)字符串长度增加子串长度。代码见算法4.34.2.2 顺序串基本操作4.删除子串顺序串删除子串操作是指将字符串中指定区间的字符串删掉。4.2.2 顺序串基本操作?【算法4.4】将字符串中指定开始位置begin到结束位置end-1的子串删掉。思路:(1)判断begin和end的合法性,若不合法返回异常否则执行(2); (2)从end位置开始向前遍历,每个元素向前移动位; (3)重复(2),直到begin位置; (4)字符串长度减少被删掉的子串长度。代码见算法4.44.2.2 顺序串基本操作5.比较字符串大小顺序串比较字符串大小操作是指依次比较2个字符串中的字符ASCII编码大小,直到比较完而返回相应结果。4.2.2 顺序串基本操作?【算法4.5】2个字符串str1和str2中的字符依次比较大小,若它们长度相等且对应字符相等则返回0;若str1长度大于str2长度,或者第1次出现了str1中字符大于str2中对应字符,则返回1;否则返回-1。思路:(1)求出str1和str2的长度分别是len1和len2; (2)若则返回1,若则返回-1,否则执行(3); (3)对str1和str2遍历,依次取出相应位置字符进行ASCII编码值比较,若相等继续下一位比较,若前者大于后者则返回1,若前者小于后者则返回-1; (4)重复(3),直到全部遍历完,则返回0。代码见算法4.54.2.2 顺序串基本操作【思考与练习4.2】下面的算法也是比较2个字符串大小(当前字符串与s

文档评论(0)

弹弹 + 关注
实名认证
内容提供者

人力资源管理师、教师资格证持证人

该用户很懒,什么也没介绍

版权声明书
用户编号:6152114224000010
领域认证该用户于2024年03月13日上传了人力资源管理师、教师资格证

1亿VIP精品文档

相关文档