kmp算法中next[i]=j;这行什么意思啊
void next(const char* p,int* nextVal)
{
int i=0,j=-1;
int plen = strlen(p);
nextVal[0]=-1;
while(i<plen)
{
if(j==-1 || p[i]==p[j])
{
++i;++j;
if(p[i]!=p[j])
{
nextVal[i]=j;
}
else
{
nextVal[i]=nextVal[j];
}
}
else
j=nextVal[j];
}
}
其中这一行代码死活看不明白:nextVal[i]=j;怎么知道nextVal[i]的值是j的呢?书看了半天也没看明白。请牛人指点啊