| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:求助 快速模式匹配 求next数组
只看楼主 加入收藏
bianchengljy
Rank: 2
等 级:论坛游民
帖 子:42
专家分:37
注 册:2011-7-14
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:2 
求助 快速模式匹配 求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 编辑 ]
搜索更多相关主题的帖子: next include 
2012-08-01 17:11
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:20 
while(k>=0&&p->c[i]!=p->c[k]) k=next[i]; 你确定这句话是这样的?
2012-08-01 19:42
bianchengljy
Rank: 2
等 级:论坛游民
帖 子:42
专家分:37
注 册:2011-7-14
收藏
得分:0 
谢谢版主,果然错了,应该是while(k>=0&&p->c[i]!=p->c[k]) k=next[k];
2012-08-02 10:48
快速回复:求助 快速模式匹配 求next数组
数据加载中...
 
   



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

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