求助 快速模式匹配 求next数组
#include <stdio.h>struct Seqstring
{
char c[100];
int n;
};
typedef struct Seqstring * PSeqstring;
void makenext(PSeqstring p , int next[])
{
int i=0,k=-1;
next[0]=-1;
while(i<p->n-1)
{ while(k>=0&&p->c[i]!=p->c[k]) k=next[i];
i++;k++;
if(p->c[i]==p->c[k]) next[i]=next[k];
else next[i]=k;
}
};
int main()
{struct Seqstring a={"BABBABAB",8};
int array[100];
int h;
makenext(&a,array);
printf("array=");
for(h=0;h<8;h++)
printf("%d",array[h]);
return 0;
}
我正在学数据结构里的字符串,想求字符串“BABBABAB”的next数组,但好像显示没结果,求助!哪里出问题
[ 本帖最后由 bianchengljy 于 2012-8-1 17:16 编辑 ]