《大話資料結構》繁體中文版勘誤
盡管已經很仔細的檢查和審核,但錯誤還是沒有能避免。在此向已經購買了本書的讀者誠意地說聲抱歉。現勘誤如下:
第一次印刷:
1.01 P37上方,有一個“+”號應該是“=”,見下圖
1.02 P37下方,正確應該是O(n!),誤將“!”寫成了上標,見下圖
1.03 P55上方,圖3-5-1,“大哥,謝謝您”的文字應該指向下方那個小人。見下圖
1.04 P20,代碼中“int i,sum =0, n = 100;”中的"i,"是多余的,可以刪除,因爲沒有用到i變量。
1.05 P62,圖3-6-5,左側第三條,“頭指針均不爲空”應該改爲“頭指針均存在” 。
1.06 P62,圖3-6-4和圖3-6-6,兩圖中“頭指針”改爲“後繼指針地址”。圖3-6-6,“0900”應該改爲“NULL” 。
1.07 P64,代碼中第6行,“/*宣告一結點p*/”應該改爲“/*宣告一指針p*/”。
1.08 P68,第三行:“用來存放e資料s結點。”,將“e資料s結點"改成“資料e的s結點” 。
1.09 P76,第一行,“而遊標cur相當于單向鏈結串列中的next指標,存放該元素的後繼者在陣列中的編號。”,將“遊標”兩字刪除,並在句子最後句號前增加一句:“,我們把cur叫做遊標。”
1.10 P113,最後一段第二行,“只有碰到左括號”改爲“只要碰到左括號”。
1.11 P113,最後一段最後一行,“而成爲空堆疊的結果。”,將“的結果”刪除。
1.12 P117,第6條,將第一個句號前的句子與第二個句號前的句子對調。結果爲“緊接著是符號"X",因爲此時的堆疊頂符號……因此不輸出,"*"進堆疊。接著是輸出數字3,總的表達式爲931-3。如圖4-9-8的右圖。”
1.13 P149,第四段第一行,“假設S="abcabcabc",”,其中的字符串S應該是“abcababca”。P150圖5-7-4和P151圖5-7-5的第①圖,都應該改爲下圖所示。
1.14 P151,倒數第二段第二行,“在圖5-7-4中,”改爲“在圖5-7-5中,”。
1.15 P157,5-7-5小節中第1號小標題中:“先計算出next陣列的值分別爲001234223”,應改爲“011234223”。
1.16 P158,最後一行,"nextval[9]=nextval[3]=1" 最後的“1”應改爲“0”。
1.17 P168,6-4-1小節第二段第二行:“其雙親結點到鏈結串列中的位置”應改爲“其雙親結點在陣列中的位置”。
1.18 P169,表6-4-3的數據第一行 A的firstchild 應該是“1”不是“-1”。
1.19 P184,6-6-2 二叉樹特性2的第四段,“如果有一階,則至多有1=20-1個節點”,應該是“21-1個節點”。
1.20 P165,6-2-3節第一段第三行,“而G、H、I、J也是。”,應該改爲“而G、H、I與J也是堂兄弟。”
1.21 P185,6-6-4節第一段第二行,“倒推出滿二叉樹的度數爲”,其中“度數”改爲“深度”,第三行,“其度爲4”,應該改爲“其深度爲4”。第三段第一行“等于同樣的度數”,“度數”改爲“深度”;第四行,“而k作爲度數也是整數”,“度數”改爲“深度”;P186,第一行,“這是一個完整二叉樹,度爲4”,“度爲4”改爲“深度爲4”。
1.23 P215,第4~5行 “例如圖6-11-4中最右側的樹”,將“最右側”改爲“右下方”。第10行 “如圖6-11-5右側三棵樹所組成的森林”,將“右側”改爲“下面”。第14行 “如圖6-11-5右側三棵樹的森林”,“右側”改爲“下面”。
1.24 P215,倒數第二段第一行,“但如果我們對圖6-11-4的左側二元樹”,“6-11-4”改爲“6-11-5”。
1.25 P219,第二段第一行,“先把這兩棵二元樹簡化成葉子結點加權的二元樹”,後面應該加“注:樹結點間的邊相關的數叫做權(Weight)”。同一行的“如圖6-12-5”,改爲“如圖6-12-4”。第三段第二行,“圖6-12-5的二元樹a中”,其中“圖6-12-5”改爲“圖6-12-4”。
1.26 P219,倒數第三行,“每個葉子的路徑長度爲lk”,其中"lk"應該改爲“lk”,即k是下標。
1.27 P220,第四段,“圖6-12-5的二元樹b這樣的樹”,“圖6-12-5”改爲“圖6-12-4”。
1.28 P235,第三段第一行,“圖7-2-9中的左側”,其中“左側”改爲“上方”,後面的“右側兩條路徑長度爲3”,其中“右側”改爲“下方”。
1.29 P236,第二行,“兩個頂點vi、vj∈E,”,這裏“E”應該改成“V”。
1.30 P237,圖7-2-13的圖1和圖2,頂點A與頂點B之間的箭頭都畫反了。
1.31 P360,圖8-7-9,圖中有錯誤,且圖形過于繁瑣,因此做比較大的修改如下圖
1.32 P267,倒數第五行,“arjvex[0]=0”,其中“arjvex”應該爲“adjvex”。
1.33 P282,第8小節,“此時i=2。”改成“此時v=2。”。P283,第11小節,“此時i=3。”改成“此時v=3。”
1.34 P280-P281,書中代碼“matirx”都應該改爲“matrix”(一共有五處修改,分別是P280代碼第三行,代碼編號的1、8、27、29行)。在提供下載的代碼中,統一將matrix修改成了arc。
1.35 P306,第三行,公式中“min{ltv[j]+len……”,中“+”應該是“-”。
1.36 P85,最下方代碼,在四句代碼第二句與第三句之間,加一句“q=rearB->next; ”,並修改最後一句的“free(p);"爲“free(q); /*釋放q*/”。
1.37 P28,倒數第四行最後,“運算100次要比運算10次大100倍”,應該是“比運算10次大1000倍”。
1.38 P49,union代碼,有不少的問題,修正如下圖。union是C語言的關鍵字,因此函數名增加壹個L。具體實現代碼,請參見源代碼中的“01線性表順序存儲_List.c”文件
1.39 P232,圖7-2-6,頂點B與頂點D缺少兩根互為反向的連線。因為有向完全圖的定義是任意兩個頂點之間都存在方向互為相反的兩條弧。
1.40 P266。圖7-6-3中鄰接矩陣有些錯誤。 arc[v2][v1]應該是18, arc[v3][v6]和arc[v6][v3]都應該是24。
1.41 P351,圖8-7-2,圖1,刪除葉子結點35和結點99。
1.42 P305 第6小節,“ltv相對應的值為19、25、13”,三個數字的順序應該是“19、13、25”。
1.43 P353,倒數第七行,“平衡因子沒有發生改變”,改為“平衡因子沒有超出限定範圍(-1,0,1)”。
1.44 P356,圖8-7-8中的圖15中結點7的BF值應該是-2而不是-1。
1.45 P369,情形二的第二行,“此時刪除結點1”,修改為“此時刪除結點4”。
1.46 P399,第三段加粗字中第三行,“(非遞減或非遞增)關系”,修改為“非遞減(或非遞增)關系”。
1.47 P80,倒數第三行,“j=k[999].cur=1",應該將“k"修改為“L”。
1.48 P412,倒數第二行 “L.r[j-1]=L.r[j] ”,其中減號應該是加號,即“L.r[j+1]=L.r[j]” 。
1.49 P340,代碼下方第壹行,"InsertBST(T,93);"應該是"InsertBST(&T,93);",下面壹行,"InsertBST(T,95);"應該是"InsertBST(&T,95);"
1.50 P425,中間壹段,堆排序定義的最後壹行,“n個元素中的次小值”,其中“次小”應該改為“次大”。
1.51 P253,圖7-4-10,V1點的陰影應該改為V2 ,修改結果見下圖
1.52 P351,最後壹段倒數第二行“(即它的左子樹高度2減去右子樹高度0)”,其中2應該改為3。P352,圖8-7-2的結點58左上角那個小2,也需要改成3。
1.53 P361,代碼第22行,"if (taller)",應該改為"if (*taller)"。本書提供的源代碼也有相同錯誤,已經做了修改。
1.54 P171,圖6-4-2,每個結點末尾都多畫了壹個指針域(即應該有四個方格卻畫了五個),應該要去掉,如下圖。
1.55 P209,第7行,“3.第7~8行,whild(”,當中“whild”應該是“while”。
1.56 P270,第2行,“假設N=(P,{E})”其中“P”應該是“V”
1.57 P136,倒數第2行,“約是65萬多個字元”,其中“65”應該是“6.5”
1.58 P308,最後壹行,“十字鏈結串列是鄰接矩陣的一種升級版,而鄰接多重鏈結串列則是鄰接串列的升級版。”,應該改爲“十字鏈結串列是針對有向圖鄰結串列結構的優化,鄰接多重鏈結串列是針對無向圖鄰結串列結構的優化。”
——————————————————————————————————————————————
《大話數據結構》出版後,發現了不少錯誤,給購買書的讀者帶來了困擾,我非常抱歉,我現在能做的就是最及時的發布勘誤信息,以避免誤導讀者。目前已經與出版社溝通過,在第二次印刷時,會將勘誤中的錯誤修正,如果很在意不要出現錯誤信息的朋友,不妨等待兩三個月後再購買,相信書籍質量會好很多。再次向已經購買的讀者說壹聲抱歉,給您要花時間修正錯誤添麻煩了,當然您們在花費十多分鐘的修改後就能盡早閱讀本書,也算是有遺憾後值得欣慰的地方!
也希望讀者可以理解,本書因為關註度比較高,所以出錯後也會影響面比較大。作為作者,本人也有很大壓力。其實任何書籍在剛出版時,都會有大大小小的錯誤,錯誤原因很多,有些圖書沒有勘誤並不等於沒有錯誤。所以盡管出版本書前,已經做了很大的努力,但還是沒有避免錯誤的發生,現在重要的就是如何彌補錯誤,不要造成讀者的閱讀障礙。微軟的Windows也需要打補丁,所以希望您可以用類似打補丁的心態去查看勘誤修正錯誤。請您更多關註圖書的內容而不是錯誤本身。謝謝!