说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
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;}

 

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘