幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4033|回复: 4

[通用编程] 问下严蔚敏数据结构的串

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2008-10-9 11:40:49 | 显示全部楼层 |阅读模式
里面一章说的  模式匹配的改进算法

给出的例子是这样的

j           |  1 2 3 4 5 6 7 8

模式  | a  b a a b c a c

next[j] | 0  1  1 2 2 3 1 2

next[1] 是先赋0值的.


之后给出了求 next值的函数
如下所示;
  1. void get_next(SString T,int &next[])
  2. {
  3.     //求模式串T的next函数值并存入数组next
  4.     i = 1;  next[1] = 0;  j = 0;
  5.     while(i<T[0]) //T[0]这里应该是指串T的长度
  6.     {
  7.         if(j==0 || T[i] == T[j])
  8.         {
  9.             ++i;++j;
  10.             next[i] = j;
  11.         }
  12.         else
  13.             j = next[j];
  14.     }
  15. }
复制代码

不过按这个算法,得到的 next[j]的值, 到了 next[4] 就不对了,
按上面的例子到了 next[4] 应该是等于 2  ,但按这算法是等于1
请问这是怎么回事呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2008-10-10 18:07:00 | 显示全部楼层
没看过这本书,数据结构方面的东西,看着就头大....
え~え~お!!!
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2008-10-11 17:15:30 | 显示全部楼层
看了她的视频还是一样的算法,但算出来确实不对....
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2008-10-19 12:13:17 | 显示全部楼层
KMP,建议G搜索,印象有
直接说明,恐用词晦涩,反而误导
Style-C
回复 支持 反对

使用道具 举报

3

主题

7

帖子

73

积分

②入门

积分
73
发表于 2009-2-12 17:01:55 | 显示全部楼层
百度百科搜索KMP算法,那里的讲解比较详细 = =
没有力量也是一种罪过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-20 20:56 , Processed in 0.019592 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表