本書共分九章:C/C++語言程序設(shè)計入門、模塊化程序設(shè)計、數(shù)組、排序、線性結(jié)構(gòu)、串與模式匹配、樹與二叉樹、圖、排序與查找。主要內(nèi)容包括:第一個程序模板;輸入輸出;計算(流程控制);利用牛頓迭代法求平方根;自頂向下等。
本書5嘗武從簡單的實際問題開始討論,帶領(lǐng)讀者逐步深人學完整的數(shù)據(jù)結(jié)構(gòu)及相關(guān)算法知識。在不得不從理論與實戰(zhàn)之間做出選擇時,本書會優(yōu)先選擇實踐。很多初學者覺得數(shù)捌結(jié)構(gòu)難學,究其原因是缺少足夠的實戰(zhàn)驗,沒有掌振正確的學。每一個數(shù)據(jù)結(jié)構(gòu)知識點,都是通過對實際問題的長期思等與逐步抽象獲得的,所以學投數(shù)據(jù)結(jié)構(gòu)的正確方法也應該是這樣。本書的目標之一,是努力做到從實踐到理論,使讀者在掌握相關(guān)實踐驗的基礎(chǔ)上,能夠通過自我撲象實戰(zhàn)數(shù)據(jù)結(jié)構(gòu)的典算法。
在能夠使用數(shù)學歸納方式將算法講清楚時,木書盡量采用數(shù)學歸納法描述基礎(chǔ)思想,幫助讀者從數(shù)學思維的角度思考算法并建立程序。數(shù)學歸納法天生就是為計算機科學及算法設(shè)計服務的。計算機科學家們都掌握著將大規(guī)模的復雜問題化簡為小規(guī)模的相同簡單何題的。幾乎所有的計算機算法都有數(shù)學歸納的影子,當然不只是數(shù)學歸納的影子。
本書還將盡量引人一些除了數(shù)學歸納之外的數(shù)學知識,讓讀者體會到數(shù)學與算法設(shè)計的關(guān)系。其實很多知識之間都有一定的相關(guān)性,在學程中彼此驗證、互相輔助,可達到融會貫通、倍的效果。
本書會有一些冗余代碼,雖然很多數(shù)據(jù)結(jié)構(gòu)圖書的理論都無可挑剔,但對應的代碼不多,不利于新手對知識的理解與應用。本書盡量從基礎(chǔ)的始講解,采用迭代的方法為讀者展示編碼的動態(tài)變化、思維的升級躍遷過程。
本書秉承的思想是從實際出發(fā),自底向上地帶領(lǐng)讀者領(lǐng)悟、掌握數(shù)據(jù)結(jié)構(gòu)這門課程,所有的例子和知識也是本著由簡到繁的順序安排,前而的代碼與解決問題的思想、,后面一定會用上。建議讀者每一章節(jié)都要掌握扎實,這是理解后面知識的基礎(chǔ)。
希望本書能夠給予剛剛學語言,又將步人數(shù)據(jù)結(jié)構(gòu)學學者以正確的指引,提供一個更容易掌握數(shù)據(jù)結(jié)構(gòu)的階梯,為將來學握更復雜的算法知識打下堅實的基礎(chǔ),使其終能夠根據(jù)不同的實際問題,設(shè)計并實現(xiàn)自己的數(shù)據(jù)結(jié)構(gòu)及對應的算法本書強調(diào)的根本能力是讀者的編碼與實際應用能力,只有擁有合格的編程能力,才能更好地理解數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識,理解相關(guān)算法的應用場景,所以一定要本書中的代碼,在編碼中學,在編碼中自我。
本書開始于年的那個的,無限感慨于祖國的偉大,為那些無私奉獻、勇于擔當、不怕的逆行者們而感動。同時感謝我的學生們,他們給了我無限的靈感和中肯的建議。
22年9月8日