- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
字符串 字符串的概念 字符串简称串,是特殊的线性表,其特殊性主要在于表中的每个元素是一个字符,以及由此而要求的一些特殊操作。可记作s=“s0s1..sn-1” 长度:一个串中包括的字符个数 长度为零的串称为“空串”,它不含任何字符 子串:字符串s1中任意个连续的字符组成的子序列s2被称为是s1的子串。 空串是任意串的子串 任意串S都是S本身的子串 除S本身之外,S的其它子串称为S的真子串 串的运算 1. 置串为一个空串; 2. 判断一个串是否为空串,若为空串,则返回1,否则返回0; 3. 求一个串的长度; 4. 将两个串拼接在一起构成一个新串 5. 在一个串中,求从串的第i个字符开始连续j个字符所构成的子串; 6. 如果串S2是S1的子串,则可求串S2在串S1中第一次出现的位置。 字符串的存储实现 顺序表示 串中的字符顺序地存储在内存一片相邻的空间,最后一个字符后面可用一特定字符’\0’作为结束标志。 在C语言中可以用字符数组存放串 链接表示 每个节点包含两个域:字符域和指针域 字符串的链接表示例 串s = ”abcdef”,按单链表存储时,定义s为指向链串的指针PLinkString s; 模式匹配 设有两个串t和p t = t0t1…tn-1 p = p0p1…pm-1 其中1<m≤n(通常有m n) t称为“目标”,把p称为“模式” 从目标t中查找与模式p完全相同的子串的过程叫作“模式匹配” 匹配结果 如果t中存在等于p的子串,就指出该子串在t中的位置,称为匹配成功; 否则称为匹配失败 模式匹配(续) 匹配方法,假设串都采用顺序表表示法 朴素的模式匹配 无回溯的模式匹配* 朴素的模式匹配 用p中的字符依次与t中的字符比较: 朴素的模式匹配(续) 到达某步时,ti = p0,ti+1 = p1,… ,ti+m-1 = pm-1,匹配成功,subStr(t,i,m)即是找到的第一个与模式p相同的子串; 将p移到无法与t继续比较为止,则匹配失败 栈与队列 栈的基本概念 定义 :栈是操作受限的线性结构,对于它所有的插入和删除都限制在表的同一端进行。这一端叫做栈的“顶”,另一端则叫做栈的“底” 解释 :节点不解释,节点之间的线性关系解释为处理节点的时序关系 进栈/出栈:后进先出,Last In First Out, 每次删除的总是当前“最年轻”的元素,即最后插入的元素 空栈:没有任何元素的栈 栈的基本运算 创建一个空栈 判断栈是否为空栈 往栈中插入(或称推入)一个元素 从栈中删除(或称弹出)一个元素 求栈顶元素的值 栈的实现-顺序表示 顺序表示: 分配一块连续的存储区域存放栈中的元素,并用一个变量来指示当前的栈顶位置 栈的实现-顺序表示 实现基本运算需注意的问题: 实现栈的运算时,变量x的类型必须与栈中元素的类型相同 栈的运算有溢出的问题(栈空间是有限的) 上溢 下溢 栈的实现-链接表示 栈也可以采用链接方式表示,把栈组织成一个单链表,如图所示 队列概念 “队列”也是一种特殊的线性表,对于它所有的插入都在表的一端进行,所有的删除都在表的另一端进行 进行删除的这一端叫队列的“头” 进行插入的这一 端叫队列的“尾” 特点:“先进先出表”(First In First Out) 空队列:当队列中没有任何元素时 队列基本运算 创建一个空队列 将队列置成空队列 判队列是否为空队列 往队列中插入一个元素 从队列中删除一个元素 求队列头部元素的值 队列的实现-顺序表示 要分配一块连续的存储区域来存放队列里的元素,并用两个变量分别指示当前队列的头和尾元素的位置 队列的实现-顺序表示 两个变量分别指示当前队列的头和尾元素 数据定义: struct SeqQueue /* 顺序队列类型定义 */ { DataType q[MAXNUM]; int f,r; } ; typedef struct SeqQueue *PSeqQueue; /* 顺序队列类型的指针类型 */ PSeqQueue paqu; /* paqu是指向顺序队列的一个指针变量 */ 队列的实现-顺序表示 关于数据定义的说明: 其中MAXNUM是一个足够大的正整数。 头变量paqu-f, paqu-q[paqu-f]表示当前队列头部的(最老的)元素 尾变量paqu-r,paqu-q[paqu-r]表示当前队列尾部的(将要插入的)元素 当前队列中元素的个数可以用paqu-r - paqu-f计算 空队列:paqu-r = paqu-f 队列的实现-顺序表示 环形队列 问题提出: 由于队列是一种动态变化的结构,在队列中经常要执行插入和删除,而每运行一次插入或删除,paqu-r或paqu-f就增
您可能关注的文档
最近下载
- 高一化学离子反应练习题.doc VIP
- 围手术期疼痛管理新进展.pptx
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人笔试模拟试题及答案解析.docx VIP
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人考试备考试题及答案解析.docx VIP
- 培训课件-冠心病的诊疗.ppt VIP
- 统编版道德与法治小学二年级上册《1 假期有收获》课堂教学课件PPT公开课.pptx VIP
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人笔试备考试题及答案解析.docx VIP
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人备考题库及答案解析.docx VIP
- 2025年山东黄金集团井下技能工人招聘(2000人)考试备考题库及答案解析.docx VIP
- 康明斯KTA19-G2型柴油机.pdf VIP
文档评论(0)