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