kmp算法
#include <iostream> using namespace std; #define MAXLEN 255 typedef struct { char ch[MAXLEN+1]; int length; }SString; //next void get_next(SString T,int next[]); //nextval void get_nextval(SString T,int nextval[]); int main() { SString T; cout << "Please input T:"; for(int i=1; i<13;i++) cin >> T.ch[i]; T.length = 13; int next[13]; int nextval[13]; get_next(T,next); get_nextval(T,nextval); cout << "next:" ; for(int i=1;i<13;i++) cout << next[i] << " "; cout << endl; cout << "nextval:"; for(int i=1;i<13;i++) cout << nextval[i] << " "; return 0; } void get_next(SString T,int next[]) { int i=1,j=0; next[1] = 0; while(i<T.length) { if(j==0 || T.ch[j]==T.ch[i]) { ++i; ++j; next[i] = j; } else j = next[j]; } } void get_nextval(SString T,int nextval[]) { int i=1,j=0; nextval[1] = 0; while(i<T.length) { if(j==0 || T.ch[j]==T.ch[i]) { ++i; ++j; if(T.ch[i] != T.ch[j]) nextval[i] = j; else nextval[i] = nextval[j]; } else j = nextval[j]; } } ———————————————— 版权声明:本文为CSDN博主「abtgu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_43790779/article/details/105595592
今天阅读了kmp算法的例子。
因为数据结构的作业要用到。