http://www.cnblogs.com/zhy2002/archive/2008/03/31/1131794.html
文章阅读过了。
原理基本看明白,但的确自己折腾一上午没弄出来。博客中代码是对的。对于Next数组的求解似乎没想明白。请走过路过的朋友不要错过,给点指点,越详细越好。可以用那个博客中的代码附加你的注释,或是自己实现的附加注释。
如果能用for实现则更好了。

解决方案 »

  1.   

    谢谢楼上顶帖,楼下,请不要回复诸如我结贴率之类的问题,我没分发帖,注册马甲发帖提问,力求给关注着和答题者以分数,所以我每帖必100分,有答案或超过1周都会结贴。不要再追究这些无聊问题。再次重申问题:希望知道KMP串匹配算法Next数组求解的详细介绍。另外,再说一句,可以贴连接,我已经看过清华版的数据结构,网上大部分的文章,不过不开窍,所以发帖,希望能不同的角度,不同的措辞来描述,能够有一个可以让我理解的。希望我已经说清楚我需要什么样的帮助了,期待你们的回复。
      

  2.   

    书看了多次了,就是没看懂。
    void get_next(SString T,int next[])
    {
        i=1; next[1]=0; j=0;
        while(i<T[0])
        {
            if(j==0 || T[i] == T[j])
            {
                ++i;
                ++j;
                next[i] = j;
            }
            else
            {
                j = next[j];
            }
        }
    }这里的i表示当前查找的位置。j是滑动的位置。
    如果T字符串为:abaabc
    结果明白,但实在没想明白这个精巧的设计怎么解释。
      

  3.   

    KMP算法,挺耳熟的    
      

  4.   

    KMP
      

  5.   


    KMP 最经典的地方就是对一直条件的充分利用。
    严蔚敏