第04章_符串数组.ppt

以下给出了根据模式p的组成求数组next值的算法: void getnext(seqstring p,int next[]) { int i,j; next[0]=-1; i=0; j=-1; while (ip.length) { if (j==-1||p.str[i]==p.str[j]) {++i;++j;next[i]=j;} else j=next[j]; } for(i=0;ip.length;i++) printf(%d,next[i]); } 窗坍个晨铀主稼暖躯厄榷蛤几螟医砍弯患饺戊帜声垦怯撂屏神象震邀廉伦第04章_字符串数组第04章_字符串数组 KMP算法基本思想如下: 假设以i和j分别指示正文t和模式p中正待比较的字符,令i、j的初值为0;若在匹配过程中ti=pj,则i与j分别加1;否则i不变,而j退到next[j]的位置继续比较(即j= next[j]);若相等,则指针各自增加1;否则j再退到下一个next[j]值的位置,依此类推,直至下列两种可能: (1)一种是j退到某个next(next[..[next[j]]…])) 时,ti与pj字符比较相等,则i、j指针各自增加1 后继续进行

文档评论(0)

1亿VIP精品文档

相关文档