目标:掌握kmp算法,并更改成更方便使用的算法代码模版
//-----生成一个其值等于chars的串T-----
Status StrAssign(SString T, char *chars) { //生成一个其值等于chars的串Tint i;if (strlen(chars) > MAXSTRLEN)return ERROR;else {T[0] = strlen(chars);for (i = 1; i <= T[0]; i++)T[i] = *(chars + i - 1);return OK;}
}
//-----KMP算法-----
int Index_KMP(SString S,SString T,int pos){//利用next函数求模式串T在主串S第pos个字符之后的位置i=pos;j=1;while(i<=S[0]&&j<=T[0]){if(j==0||S[i]==T[j]){......
阅读全文