哪位大侠能够帮个忙(关于C++数据结构当中的KMP算法的)

先看看下面的next函数定义有错误吗?
next函数定义:
next(j)={
1:当j=1时,next(j)=0
2:当j>1时,next(j)=max{k|1<=k<j且"t(1)t(2)...t(k-1)"="t(j-k+1)t(j-

k+2)t(j-k+3)...t(j-1)";
3:当不存在上面的K数值且t(1)!=t(j) next(j)=1;
4:当不存在上面的K数值且t(1)!=t(i) next(i)=0;//i是表示什么意思?

我想知道2表达式的意思是否等价于“模式中前k-1个字符与模式中t(j)前k-1个

字符相等”?
还有4表达式当中的i是表示什么意思啊

下面的例子我也不算太明白:

模式串: a b c a a b a b c
next(j): 0 1 1 0 2 1 3 1 1
在这个例子当中我利用上面的定义得到了部分与答案相符,
但是next(2),next(3),next(6),next(9),的结果是怎么来的,我不明白,那

位大仙帮个忙,把过程说一下

第1个回答  2009-02-06
你是多大的学生?这种问题你应该去找你的亲戚,你哥哥一类的,网上的人现在一般没好人,回答顶多也是错题,你还是问亲戚吧~

哪位大侠能够帮个忙(关于C++数据结构当中的KMP算法的)
你是多大的学生?这种问题你应该去找你的亲戚,你哥哥一类的,网上的人现在一般没好人,回答顶多也是错题,你还是问亲戚吧~

408数据结构考点:KMP算法
KMP 算法中需要用到一个串的真前缀和真后缀。在 KMP 算法中,前缀默认代表真前缀,后缀默认代表真后缀。设模式为[公式] ,文本为 [公式] ,初始时偏移为 s = 0。设当前偏移为s,需要从前往后依次比较 [公式] 和 [公式] ,若 [公式] ,则匹配成功,得到 P 在 T 中的一个匹配。若中间出现...

数据结构C语言版迷宫问题
首先,迷宫如何用计算机语言表示?一般用二维数组。0表示墙,1表示路。其次,其次就是如何从迷宫中走出来了。结合堆栈,进行搜索。你可以尝试着对问题进行分层,然后逐步细化来解决。如果你要解决一个别人给的走迷宫的问题,同样还是要这样,首先把别人给的迷宫在计算机中表示出来,其次结合数据结构所学的知...

相似回答
大家正在搜