以下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 提供)