next[j]的理解

//求next[j]的算法

void getNext(T,next[j]){

int j=1;

k=0;//最长相等值 

next[0]=-1;//为了好计算 ,故这样设值 

next[1]=0;//第二个元素前的next[1]必等于0

while(j<T.length-1){//因为每次求得的是next[j+1],顾而

   if(T.str[j]==T.str[k]){

   	next[j+1]=k+1;

   	j++;

   	k++;
   } 

   else if(k==0){

   	next[j+1]=0;

   	j++
   }

   else
   k=next[k];//k不等于0的情况 

}

}

猜你喜欢

转载自my.oschina.net/u/2511906/blog/1623728
今日推荐