next数组求法.docVIP

  • 9
  • 0
  • 约3.33千字
  • 约 3页
  • 2017-06-07 发布于河南
  • 举报
next数组求法

int get_nextval SString T,int nextval[ ] //求模式串T的next函数修正值并存入数组nextval。 i 1; nextval[1] 0; j 0; while i T[0] if j 0||T[i] T[j] ++i;++j; if T[i]! T[j] nextval[i] j; else nextval[i] nextval[j]; else j nextval[j]; //get_nextval 根据这段程序来求nextval的值是可以方便计算出来,但如果是应付考研试题或者期末考试就有点麻烦了。而如果记住我推荐的方法,那么任何时候都可以很方便地求解nextval了。 首先看看next数组值的求解方法。 例如: 模式串 a b a a b c a c next值 0 1 1 2 2 3 1 2 nextval值 next数组的求解方法是:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进行比较,直到找到某个位上内容的next值对应的内容与前一位相等为止,则这个位对应的值加上1即为需求的next值;如果找到第一位都没有找到

文档评论(0)

1亿VIP精品文档

相关文档