[求助]kmp算法结果和书上的不一样
KMP算法求得 next 的值!应该为:
abaabcac
01122312
我照的书上写的,为什么和上面那个不对呢?
下面是源程序,高手帮忙!
#include <stdio.h>
#include <stdlib.h>
void get_next(char T[] ,int next[])
{
int i=1;
int j = 0;
next[1] = 0;
printf("%s\n",T);
while(T[i]!='\0')
{
if(j == 0 || T[i] == T[j])
{
++i;
++j;
next[i] = j;
printf("%d=%d\n",i,next[i]);
}
else
{
j = next[j];
}
}
}
int main(int argc, char *argv[])
{
char T[]="abaabcac";
int next[8]={0};
get_next(T, next);
system("PAUSE");
return 0;
}