[数据结构(C语言版)].严蔚敏.吴伟民.课件.第04章-串讲解.pptVIP

  • 102
  • 0
  • 约8.16千字
  • 约 34页
  • 2017-01-23 发布于香港
  • 举报

[数据结构(C语言版)].严蔚敏.吴伟民.课件.第04章-串讲解.ppt

[数据结构(C语言版)].严蔚敏.吴伟民.课件.第04章-串讲解

(1) 若有tk=tj :则表明在模式串中有: t1t2…tk-1tk=tj-(k-1)tj-k… tj-1 tj,且不可能存在k’k满足上式,即:next[j+1]=next[j]+1=k+1 (2) 若有tk≠tj :则表明在模式串中有:t1 t2…tk-1 tk≠tj-(k-1) tj-k… tj-1 tj ,当tk≠tj时应将模式向右滑动至以模式中的第next[k]个字符和主串中的第j个字符相比较。若next[k]= k’,且tj = tk’,则说明在主串中第j+1字符之前存在一个长度为k’(即next[k])的最长子串,与模式串中从第一个字符起长度为k’的子串相等。即 next[j+1]=k’+1 同理,若tj≠tk,应将模式继续向右滑动至将模式中的第next[k’]个字符和tj对齐,??,依此类推,直到tj和模式串中的某个字符匹配成功或者不存在任何k’(1 k’j)满足等式:t1 t2…tk-1 tk’=tj-(k’-1) tj-k’… tj-1 tj 则: next[j]+1=1 根据上述分析, 求next函数值的算法如下: void next(StringType t , int next[]) /* 求模式t的next串t函数值并保存在next数组中 */ { int k=1 , j=0 ; next[1]=0; whi

文档评论(0)

1亿VIP精品文档

相关文档