精品计算机课件《c语言数据结构》第04章串腺.pptVIP

  • 1
  • 0
  • 约1.52万字
  • 约 50页
  • 2016-09-25 发布于湖北
  • 举报

精品计算机课件《c语言数据结构》第04章串腺.ppt

精品计算机课件《c语言数据结构》第04章串腺.ppt

第4章 串(String) 主要内容 若干术语: 串的抽象数据类型定义(参见教材P71) 复习:C语言中常用的串运算 例1: 设 s =’I AM A STUDENT’, t =’GOOD’, q=’WORKER’。求: (参见P71) 提问: 当s =’I AM A STUDENT’时, INDEX(s,’A’,pos)=3,若想搜索后面那个‘A’怎么办? 例2:设 s =’I AM A STUDENT’, t =’GOOD’,求: Concat( SubString(s,6,2), Concat( t,SubString(s,7,8) ) ) =? 4.2 串的表示和实现 定长顺序存储特点:用一组连续的存储单元来存放串,直接使用定长的字符数组来定义,数组的上界预先给出,故称为静态存储分配。 例:用顺序存储方式编写求子串函数SubString(Sub,S,pos,len) 堆分配存储特点:仍用一组连续的存储单元来存放串,但存储空间是在程序执行过程中动态分配而得。 例1:编写建堆函数 (参见教材P76) 例2:用“堆”方式编写串插入函数 (参见教材P75) 链式存储特点 :用链表存储串值,易插入和删除。 4.3 串的模式匹配算法 BF算法的实现—即编写Index(S, T, pos)函数 2007百度笔试题: 编程1:找出字符串的最长不重复子串并输出其长度。实现时有无O(n)的算法? 编程2:找出一个字符串的最长回文子串,并使算法效率尽量高。 第4章 串(String) 主要内容 链式存储特点 :用链表存储串值,易插入和删除。 4.3 串的模式匹配算法 BF算法的实现—即编写Index(S, T, pos)函数 BF算法的时间复杂度 讨论: 若n为主串长度,m为子串长度,则串的BF匹配算法最坏的情况下需要比较字符的总次数为 KMP算法(特点:速度快) ① KMP算法设计思想 ② KMP算法的推导过程 ③ KMP算法的实现 (关键技术:计算next[j]) ④ KMP算法的时间复杂度 ① KMP算法设计思想: (参见教材P80-84) ② KMP算法的推导过程:(见教材P81) 新起点 k怎么求? (1) next[ j ]有何物理意义?

文档评论(0)

1亿VIP精品文档

相关文档