《大话数据结构》简体中文版第三次印刷后勘误

以下2011-11-09更新

3.01 P329,倒数第二行,“结点58的左子树高度为2,”其中2应该改为3。( 小墨的童鞋 提供)

3.02 P330★,中间一段,“(即它的左子树高度2减去右子树高度0)”,应该改为“(即它的左子树高度3减去右子树高度1)”。然后图8-7-3在结点58的右侧增加一个60的结点,如下图。( 小墨的童鞋 提供)

以下2011-11-14更新

3.03 P194,中间第3条,"第7~8行,whild(p!=T)",其中"whild"应该改为"while"。(小老k 提供)

3.04 P251 第三行 “假设 N=(P,{E}) .....” 改为“假设 N=(V,{E}) .....” (小老k 提供)

以下2011-11-23更新

3.05 P126页第三段倒数第二行,“65万”改为“6.5万”(somebodysssss 提供)

以下2011-12-05更新

3.06 P351,中间一段,有四处的└m/2┘都应该是 ┌m/2┐,见下图。( 给你改错 提供)

以下2011-12-07更新

3.07 P288,第二段第二行,“十字链表是邻接矩阵的一种升级,而邻接多重表则是邻接表的升级。”,应该改为“十字链表是针对有向图邻接表结构的优化,邻接多重表是针对无向图邻接表结构的优化。”(韦欢 提供)

以下2011-12-20更新

3.08 (本次改动仅限第三次印刷)P61,代码第三行,"if (!p || j>=i)",请将“=”去掉。P63,代码中间一行,,"if (!p || j>=i)",请将“=”去掉。P65,代码中间一行,"if (!p || j>=i)",请将“=”去掉。(kenly2007 提供)

以下2012-01-09更新

3.09 P68 最后一行,"那么应该让这个链表的指针域置空" ,其中“链表”应该改为“节点”。(落崖惊风 提供

3.10 P138 最下方的公式,“且‘p1……k-1’”,在“k-1”的左侧少了一个"p". (落崖惊风 提供

以下2012-02-07更新

3.11 P108 倒数第四行最后一句,“是右括号或优先级低于”,其中“低于”改为“不高于”。(王天兴 提供)

3.12 在源代码中栈与队列的DoubleStack.c中的两个问题(目前源代码已经修正,重新下载即可。书中讲解并无错误):

问题1:
int StackLength(SqDoubleStack S)
{
return (S.top1+1)+(MAXSIZE-1-S.top2);
}
中的语句return (S.top1+1)+(MAXSIZE-1-S.top2); 应该修改为 return (S.top1+1)+(MAXSIZE-S.top2);

问题2:
Status StackTraverse(SqDoubleStack S)
{
int i;
i=0;
while(i<=S.top1)
{
visit(S.data[i++]);
}
i=S.top2;
while(i<MAXSIZE)
{
visit(S.data[i++]);
}
printf("\n");
return OK;
}
中的语句 while(i<S.top1) 应该修改为 while(i<=S.top1) (闫丰 提供)

以下2012-02-13更新

2.19★ P157,表6-4-3的数据第一行 A的firstchild 应该是 1 不是 -1。( 小老K 提供,二次印刷已经勘误过,但未更新掉)

3.14 P234 图7-4-10 右下角那句“V2后再无V0的入边顶点,所以其taillink为空” taillink应该是headlink (风碎月 提供)

posted on 2012-01-09 09:22 伍迷 阅读(781) 评论(23) 编辑 收藏

评论

#1楼  回复 引用   

支持楼主原创,虽然很多人都满腹经纶,真正出好书的人却少。就像我一样,虽然在一些领域研究很深,却没有耐心出书来分享给大家,惭愧!同时鄙视那些专门写一些没有内涵的书骗同学们钱的人。
2012-01-09 09:31 | dongdong168[未注册用户]

#2楼[楼主]  回复 引用 查看   

@dongdong168
感谢支持!
2012-01-09 16:04 | 伍迷      

#3楼  回复 引用 查看   

错误是比第一版少了不少,就是不知道第3版啥时候出啊,哪个网站上可以买的到。
2012-01-13 22:42 | 塞北噬魂      

#4楼  回复 引用   

程老师,个人觉得1.2节你数据结构怎么学的?中关于小菜的例子,客户排队模块,现实中由于可能要考虑系统掉电等意外恢复后还要求保存原来的客户排队信息,一般是不仅仅在内存中完成就可以的,所以小菜把排队信息存储在数据库也无不可,只是程序效率较差而已,但是换来了系统的可靠性。
2012-01-15 10:32 | father[未注册用户]

#5楼  回复 引用 查看   

都第三次印刷了 恭喜恭喜呀...
2012-01-17 07:21 | 小墨的童鞋      

#6楼[楼主]  回复 引用 查看   

@father
这只是一个例子,现实的需求很复杂,在要求考虑断电死机情况下,你说的也有一定道理。但这不影响我想表达的意思。谢谢!
2012-01-17 09:26 | 伍迷      

#7楼[楼主]  回复 引用 查看   

@小墨的童鞋
谢谢!
2012-01-17 09:27 | 伍迷      

#8楼  回复 引用 查看   

有点小疑惑,第157页中间,A节点的长子域是-1?它的长子域应该是B节点是1吧?我看的是第二版的书~
2012-02-01 11:08 | 甩掉裤衩凭风吹      

#9楼  回复 引用 查看   

我是第三版,“P65,代码中间一行,"if (!p || j>=i)",请将“=”去掉。“我的没看到有if (!p || j>=i),而是有 if(!(p->next)||j>=i)
请问是将: if(!(p->next)||j>=i)改为: if(!(p->next)||j>i) 还是改为: if(!p||j>i)
2012-02-05 22:16 | 追夢      

#10楼  回复 引用 查看   

老大,回上海没有?你们一家子还真能玩,出去旅游这么久
给你汇报一下,我软考通过了,多谢你的《大话数据结构》和《大话设计模式》,当初我就说么,这两本书是重头戏,哈哈。
不过不考试又提不起兴趣看数据结构了……
http://www.cnblogs.com/wormday/archive/2012/02/06/2339443.html
2012-02-06 00:35 | 小墨的童鞋      

#11楼  回复 引用   

正需要这样的书啊,盼在出个<<大话算法>>, 哈!
2012-02-07 15:57 | xzgyb[未注册用户]

#12楼[楼主]  回复 引用 查看   

@追夢
3.08 (本次改动仅限第三次印刷)P61,代码第三行,"if (!p || j>=i)",请将“=”去掉。P63,代码中间一行,,"if (!p || j>=i)",请将“=”去掉。P65,代码中间一行,"if (!p || j>=i)",请将“=”去掉。(kenly2007 提供)

注意是第三次印刷才有此错误!给您添麻烦了,抱歉!
2012-02-07 17:05 | 伍迷      

#13楼[楼主]  回复 引用 查看   

@甩掉裤衩凭风吹
没理解您的意思,能再解释一下您的问题吗?
2012-02-07 17:07 | 伍迷      

#14楼  回复 引用 查看   

有点小疑惑,第157页中间那副表格里,A节点的长子域是-1?它的长子域(B节点)应该是是1吧?我看的是第二版的书~
2012-02-08 13:54 | 甩掉裤衩凭风吹      

#15楼[楼主]  回复 引用 查看   

@甩掉裤衩凭风吹
感谢您的指正,的确是问题,已经加入勘误。
这个错误此前已经勘误过,见2.19的勘误内容,应该是编辑在修改时疏忽了,抱歉!
2012-02-13 09:24 | 伍迷      

#16楼  回复 引用 查看   

哥,第三次印刷哪里有卖的。我怎么找不到?(北京)
2012-02-13 13:35 | 24.小塒隱身      

#17楼[楼主]  回复 引用 查看   

@24.小塒隱身
理论上网上书店到处都有卖了,实体书店可能未必。
2012-02-13 15:04 | 伍迷      

#18楼  回复 引用 查看   

3.02 P330★,中间一段,“(即它的左子树高度2减去右子树高度0)”,
这里第三次印刷的书上是:“(即它的左子树高度3减去右子树高度0)”,
到底是什么,没开读的,现在不知道
2012-02-13 21:53 | 啥子      

#19楼[楼主]  回复 引用 查看   

@啥子
即它的左子树高度3减去右子树高度1
将最后的0改为1
2012-02-14 11:02 | 伍迷      

#20楼  回复 引用   

P65页,链式存储链表的删除的算法我觉得有问题。
1、while循环的作用是找到第i个元素,即要删除的元素,你算法中记为p。但是你删除的是q,即p->next,这是删除了第i+1个元素。
2、判断句if(!(p->next) || j>=i )一句。你勘误说去掉"=",这个没问题。但是!(p->next)也应该也去掉。因为假如p是链表的最后一个节点,而删除的第i个元素也是最后一个节点的话,那么此时,j=i,p!= null,p->next = null,这是符合删除要求的。而你的算法却返回了ERROR,删除链表的最后一个节点是合法的,你的算法却返回ERROR没有进行正确的删除操作。

以上,如果我说的有错误请指正,我不是乱挑刺的。呵呵。
2012-02-19 12:55 | 小九1221[未注册用户]

#21楼  回复 引用   

我又重新看了下链表这块。可能我的理解有点错误。
按照你最开始的讲解,头结点指向的元素(节点)是第一个,也就是说头结点不算在计数里,那么你的算法思路的表述就有问题,而算法实现却没有了问题。因此算法思路和实现不符。
1、你算法思路的第一步,是p指向链表的第一个节点,但是你的p=*L,是p指向了头结点,不是第一个节点。
2、如果头结点不算第一节点,那么你的算法实现中while循环里的注释就错了。不是遍历寻找第i个元素,而是遍历寻找第i-1个元素。而算法思路里的描述也有问题。
2012-02-19 13:27 | 小九1221[未注册用户]

#22楼  回复 引用   

针对第三次印刷的3.7,3.8(P60-P68)

在讲解链式线性表这部分,你书中出现了如下四种表述:第i个元素、第i个节点、第i个数据元素、第i个位置。(取值、插入、删除算法)
四种表述是否表达同一个意思,或者有差异?你没有明确说明,但四种表述却混用。让我看的头都大了(我是初学者)。
我的理解是:
链表的头结点不是抽象数据“线性表”的组成部分,也不是链式存储实现线性表的必须手段。所以头结点是不该计入链表的长度的,表述某链表的第i个元素/节点也应该是从第一个数据元素节点开始计数。
这样的话我认为你的四中表述是一致的,即i的第一个计数不是头结点。

那么,你“算法思路”和算法的注释中就出现了问题。进行插入和删除第i个数据元素节点时,是应该找到第i-1个数据元素节点的。我认为你的算法代码都没有错误,但是表述和注释上时有所出入的。
2012-02-19 19:16 | 小九1221[未注册用户]

#23楼[楼主]  回复 引用 查看   

@小九1221
感谢您的回复,这部分因为是两个时间段写作的,最开始写了第三、四、五章,但写到后面的章节,感觉前面的不够好,再回过头来修订了,当中措辞上可能是有问题。
由于涉及内容有点杂,表述不太容易,我争取在下次印刷时,统一修改。谢谢!
2012-02-21 08:57 | 伍迷      
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 2316791 KpW0QztP2OA=

导航

公告

    《大话数据结构》第三次印刷已将勘误中的错误修正,预计在2011年12月在各大网上书店中有售。具体时间由网店决定,我也不清楚,如果有买到的朋友能否给我发封邮件呀。再次向已经购买第一二次印刷的读者说一声抱歉,给您要花时间修正错误添麻烦了,当然您们在花费二十多分钟的修改后就能尽早阅读本书,也算是有遗憾后值得欣慰的地方!


联系邮箱:chengjielong#163.com
(中间“#”换成“@”)


新浪微博:http://weibo.com/cj723


本人《大话数据结构》2011年6月简体中文版由清华大学出版社出版,繁体中文版由台湾悦知文化出版



简体中文版


繁体中文版


本人因《大话设计模式》而获得51CTO网站主办的"2008年十大IT图书最佳原创作者奖" ;《大话设计模式》获互动出版网评选的2008年度十大畅销经典第4名;当当网计算机/网络类2008年度畅销榜第6名



简体中文版


繁体中文版
昵称:伍迷
园龄:5年6个月
荣誉:推荐博客
粉丝:694
关注:18

搜索

 

常用链接

随笔分类(166)

随笔档案(139)

相册

朋友

积分与排名

  • 积分 - 536501
  • 排名 - 108

最新评论

阅读排行榜

推荐排行榜