Lupkid 发表于 2007-10-19 15:30

求KMP完整程序(C或C++),头痛ing

求KMP完整程序(C或C++),头痛ing[em06]

Lupkid 发表于 2007-10-19 17:19

我主要是NEXT那数组不知怎么去用

zxc1998 发表于 2007-10-19 20:53

int Index_KMP(SString S,SString T,int pos,int next[])<BR> { // 利用模式串T的next函数求T在主串S中第pos个字符之后的位置的KMP算法。<BR>   // 其中,T非空,1≤pos≤StrLength(S)。算法 4.6<BR>   int i=pos,j=1;<BR>   while(i&lt;=S[0]&amp;&amp;j&lt;=T[0])<BR>     if(j==0||S[i]==T[j]) // 继续比较后继字符<BR>     {<BR>       ++i;<BR>       ++j;<BR>     }<BR>     else // 模式串向右移动<BR>       j=next[j];<BR>   if(j&gt;T[0]) // 匹配成功<BR>     return i-T[0];<BR>   else<BR>     return 0;<BR> }

Lupkid 发表于 2007-10-19 21:27

谢谢,我的程序有问题,有空帮忙看看

页: [1]

编程论坛