| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:[求助]kmp算法结果和书上的不一样
只看楼主 加入收藏
haha_zhi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
[求助]kmp算法结果和书上的不一样
KMP算法求得 next 的值!
应该为:
abaabcac
01122312
我照的书上写的,为什么和上面那个不对呢?
下面是源程序,高手帮忙!
#include <stdio.h>
#include <stdlib.h>

void get_next(char T[] ,int next[])
{
     int i=1;
     int j = 0;
     next[1] = 0;
     printf("%s\n",T);
     while(T[i]!='\0')
     {
         if(j == 0 || T[i] == T[j])
         {
              ++i;
              ++j;
              
              next[i] = j;   
              printf("%d=%d\n",i,next[i]);
         }            
         else
         {
              j = next[j];   
         }   
     }
}
int main(int argc, char *argv[])
{
  char T[]="abaabcac";
  int  next[8]={0};
  get_next(T, next);
  system("PAUSE");    
  return 0;
}
搜索更多相关主题的帖子: kmp 算法 
2009-07-28 17:40
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:20 


kmp.tar.gz (43.01 KB)

生命不熄,战斗不止.
2009-07-28 19:46
haha_zhi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-22
收藏
得分:0 
晕!楼上在笑,为啥?
void get_next(const char sub[],int next[]){
    int i=0,j=-1;
    next[0]=-1;
    while(i<strlen(sub)){
    if(j==-1||sub[i]==sub[j]){
        ++i,++j;
        next[i]=j;
    }
    else
        j=next[j];
    }
}
我那个和你那个就是下标从0,1 开始,为啥我的不对,说一下具体原因嘛!
高手!
2009-07-29 23:38
快速回复:[求助]kmp算法结果和书上的不一样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021193 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved