C++ 数据结构之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;}

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

会得到最大的满足,因为它填补了你的空虚。

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

相关文章:

你感兴趣的文章:

标签云: