数据结构04串和数组幻灯片.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 串和数组 第四章 串和数组 主要内容 串的相关知识 1 数组的定义 2 特殊矩阵的数组存储 3 数组和串的应用 4 教学要求 教学重点 教学难点 目标要求 1.理解串的基本操作的定义; 2. 熟练掌握在串的顺序存储结构上实现串的各种操作的方法 3.掌握朴素的模式匹配算法。 4.了解数组的两种存储表示方法,并掌握数组的地址计算方法; 5.了解稀疏矩阵的特点和压缩存储方法 1.朴素的模式匹配运算 2.掌握数组的存储方式,顺序存储的地址计算公式 1.串的匹配运算算法 2.稀疏矩阵压缩存储表示下实现的算法 4.1串 4.1.1 串的定义 串的值 串的长度 串的名 串:是由 计算机字符组成的有限序列。 通常记为:s =‘ c1 c2 c3 … ci …cn ’ ( n≥0 )。 字母、数字或其他字符 必须有! 但不属于串! 作用:避免字符串与变量名或数的常量混淆。 例:x = ‘123’ x = 123 test =‘test’ 空串:不含任何字符的串,长度 n= 0,用表示为表示为S =‘’。 空格串:仅由一个或多个空格组成的串。 4.1.2 串间关系 子串: S串中任意m (m≤n)个连续字符构成的串称为S的子串。 主串: 相对地,S称为主串。 2. 子串关系 1. 相等关系 精确相等关系 左对齐相等关系 两串有相同的长度,且自左至右逐对对应字符相等时两串才为相等 不要求两串有相同的长度 自最左的第1个字符开始逐个对应字符比较 当不等时,如何判断大小关系 包含关系 例:S=‘NanJing’ S1=‘Nan Jing’ S3=“NanJing” S S1 S S2 ? = 例:S7 =“I am a student now.”,S8 =“student”,S9 =“student.” S7——主串 S8——S7子串 S9——非S7子串 空串是任意串的子串,任意串是其自身的子串 位置:字符在序列中的序号。 子串在主串中的位置:子串的首字符在主串中的位置。 在S中的位置:8 非串 S 中的连续字符所组成 4.1.3串的基本操作 1 串赋值 2 串精确相等 3 串左对齐相等 4 求串长度 5 取子串 6 串匹配 7 并串 8 串置换 9 串插入 10 串删除 4.1.4串的存储结构 串的存储结构与线性表的存储结构十分相似。 区别是:串的数据元素在任何情况下仅是一个单个字符 顺序存储结构 静态顺序存储结构(顺序串) 动态顺序存储结构 一次性为串分配好足够的存储单元 块链式存储结构 堆存储结构(堆串) 随时扩充和释放空间 顺序串 #define M 100 typedef struct{ char ch[M] ; int n ; }SSTR ; 堆串 typedef struct { char *ch ; int len ; } HSTR ; 串的实际长度可在这个预定义长度范围内随意设定,超出则被截断 以一个特殊的字符作为字符串的结束标志,串长是一个隐含值 3.1.5关于串的几个算法 串的基本操作和线性表有很大差别 线性表:大多以“单个元素”作为操作对象 串:通常以“串的整体”作为操作对象 如:在线性表中查找某个元素、求取某个元素、在某个位置上插入一个元素和删除一个元素等; 如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。 3.1.5关于串的几个算法 1.判串精确相等 EQUAL(S,Q) 串S: 串Q: s t u d e n t . s t u d u n t , S.n Q.n int EQUAL(SSTR S,SSTR Q){ int i; if(S.n!=Q.n) return 0; else{for(i=0;S.ch[i]==Q.ch[i];i++); if(i=S.n-1) return(1); else return(0); } } i=0 i=0 i=1 i=1 i=2 i=2 i=3 i=3 i=4 i=4 字符 不等 返 回 i 与S.n 比较 3.1.5关于串的几个算法 2.取子串 SUBSTR(S,pos,len) 求子串的过程:为复制字符序列的过程 将串 S中的第 pos 个字符

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档