首页 > 编程 > C++ > 正文

C++ 数据结构之kmp算法中的求Next()函数的算法

2020-01-26 14:03:27
字体:
来源:转载
供稿:网友

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;}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表