好库网 好库网首页 | 我的好库
VC开发指南

kmp算法中的求Next()函数的算法

发布者:vchelp
发布日期:2012/4/5 22:59:17   更新日期:2012/4/5 22:59:17
阅读次数:4608
评分:4.80
介绍:kmp算法中的求Next()函数的算法
正文:

用c语言写的kmp算法中的求Next()函数的算法

 

#include <iostream>

using namespace std;

void preKmp(char *c, int m, int Next[])
{
    int i=1,j=-1;
    Next[0]=-2;
    while(i<m)
    {
        if(j==-2)
         {
             Next[i]=-1;
             i++;
             j=-1;
         }

          ++j;
          if(i==m)
          return;
        if(c[i]==c[j])
          {
              Next[i]=j;
              ++i;
          }
        else if(j==0)
          {
              j=-2;

          }
        else j=Next[j-1];
    }
}
int main()
{
    cout << "Hello world!" << endl;
    char pat[12]="actabactace";
    int next[11];
    preKmp(pat,11,next);
    for(int i=0;i<11;i++)
        cout<<"next["<<i<<"]="<<next[i]<<endl;
    return 0;
}

 


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。