以下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 (風碎月 提供)
以下2012-03-23更新
2.05★★ P58,圖3-6-4和圖3-6-6,兩圖中“頭指針”改為“后繼指針地址”。圖3-6-6,“0900”應該改為“NULL” ( 小老K 提供,二次印刷已經勘誤過,但未更新掉)
以下是第四次印刷依然存在的不足
以下2012-04-12更新
4.01 P188,第二段整段刪除,即“當然,你完全也可以……###DB##CA”這一段。原因在於,由於中序遍歷不能首先建立根結點,用加“#”的方法是不可能創建一個二叉樹的,后序遍歷在特定規則下可以見http://www.cnblogs.com/cj723/archive/2012/01/09/2316791.html#2372197。(貓□咪和 G-rated 提供)
以下2012-05-14更新
2.42★ P216,圖7-2-6,頂點B與頂點D缺少兩根互為反向的連線。因為有向完全圖的定義是任意兩個頂點之間都存在方向互為相反的兩條弧。
以下2012-06-04更新
4.02 P52,代碼第8行,"if (i<1 || i>L->length+1)"當中的“+1”不需要,應該是"if (i<1 || i>L->length)"。( csensix 提供)本處不需要修改,並沒有錯,詳細說明請看我提供的源代碼的注釋“/* 當i比第一位置小或者比最后一位置后一位置還要大時 */”
以下2012-06-25更新
p70,圖3-11-1,時間性能最后一個,“線出”應改為“找出” ( Darker 提供)
以下2012-07-16更新
p261★★ 代碼第9行 “(*P)[v]=0 /*初始化路徑數組P為0 */” 將其中的0改為-1,即“(*P)[v]=-1 /*初始化路徑數組P為-1 */” 。這是因為當為0時本來表示沒有路徑,但卻和數組索引為0的編號重合,導致在一些特殊情況出現最短路徑計算錯誤,提供下載的代碼和測試代碼也做了修正,請下載查看。(伍迷 自提供)
以下2012-08-08更新
p103,圖4-8-3,當中的Fib都改為Fbi。本錯誤不算嚴重,可以不改。由於是對Fibonacci這個單詞的縮寫,Fbi或者Fib都是可以的。為了和代碼中的統一,特告知,后續印刷版本,會將這樣的小錯誤修正。(hefeijuan 提供)
以下2013-07-31更新
p153,圖6-2-6上方段落第二行,"則其子樹的根就在第l+1層","的根"兩字去掉。(莫小峰來了 提供)
p175,第三段第二行,"簡單地假定就是輸出結點的數據信息",其中“簡單地假定就是”改成"簡單地假定訪問就是"。(莫小峰來了 提供)
p205,右方的圖中結點N1~N2少了權值15,N2~N3之間少了權值30,可參看左側6-12-7的圖。(莫小峰來了 提供)
p218,最后一段第一行,"第一個頂點到最后一個頂點",其中“到”改為"和"。(莫小峰來了 提供)
p249,第一段第二行,"arjvex"改為"adjvex"。(莫小峰來了 提供)
p255, 最后一段第一句,“最右圖"改為"右下方的圖"。(莫小峰來了 提供)
p266,第一段第二行, "P代表對應頂點的前驅矩陣",前驅矩陣是什么沒解釋,后增加一句“,用來存儲路徑”。(莫小峰來了 提供)
P388頁,第7點第二段,“由於6、5、4、3都比2小,它們都將右移一位” 應該更正為“由於6、5、4、3都比2大,它們都將右移一位”。(禾鬥雨 提供)