以下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)",请将“=”去掉。( 提供)
以下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。( 提供,二次印刷已经勘误过,但未更新掉)
3.14 P234 图7-4-10 右下角那句“V2后再无V0的入边顶点,所以其taillink为空” taillink应该是headlink ( 提供)