高一凡所著的《數據結構算法解析(第2版)》為嚴蔚敏、吳偉民編著的《數據結構(C語言版)》(清華大學出版社出版,本書按慣例將其簡稱為嚴書)的學習輔導書,主要內容包括嚴書中各主要數據存儲結構的基本操作函數、調用這些基本操作的主程序和程序運行結果以及嚴書中各主要算法的演示課件。
本書作者長期教授“數據結構”課程,有著獨到的教學心得和先進的教學方法,教學效果顯著,使“數據結構”的學習成為一件賞心樂事,深受學生喜愛。本書是作者多年教學經驗的總結。
本書所有程序和算法演示課件均在計算機上運行通過,這些程序的源代碼和算法演示課件可通過清華大學出版社的網站下載。
本書適用于使用嚴蔚敏、吳偉民編著的《數據結構(C語言版)》作為教材的高等學校學生和自學者,也可供使用其他《數據結構》教材者和軟件編程人員參考,同時也是很好的考研參考書。
本書第1版受到了讀者的好評,這對作者是莫大的鼓勵。時隔數年,作者在教學實踐中進一步積累了經驗、方法、手段和心得體會。值此第2版出版之際,作者將這些新的成果與讀者分享。
作者在第1版的基礎上做了如下修改。
(1) 增加了包括大多數算法的演示課件。該演示課件是與算法逐語句對應的,并在教育部舉辦的“第十屆全國多媒體課件大賽”中獲得高教工科組三等獎。
(2) 在第3章增加了“離散事件模擬”一節。因為算法較復雜在第1版沒有收入,第2版增加了該算法的演示課件,降低了理解算法的難度。
(3) 增加了“動態存儲管理”一章(放在最后)。同樣增加了該章算法的演示課件,降低了理解的難度。
(4) 去掉了第5章中廣義表的內容。
(5) 去掉了第6章中線索二叉樹的內容。
(6) 增加了平衡二叉樹刪除結點的操作函數,這是我曾經的學生曾金龍在課程設計中做的,后來又幾經修改。對于這組函數我特別滿意,特地收在書中與讀者分享。
(7) 去掉了樹形選擇排序的算法。
(8) 對基數排序的講述做了較大修改,著重強調基數排序適用于不等長字符串排序,更換了輸入數據文件,增加了一些圖,使得基數排序算法一目了然。
(9) 對第1版內容做了仔細的修訂,有些算法的講述也做了修改,在此無法一一細數。
本書所有程序都在Microsoft Visual C++ 6.0和Visual Studio C++ 2012下運行通過,稍做修改也可以在UNIX下運行通過。這些程序和算法演示課件都可通過清華大學出版社網站(www.tup.tsinghua.edu.cn或www.tup.com.cn)下載。
算法演示課件的工作量巨大,非我一人能夠完成。我的同事李鵬給了我很大的幫助,我的許多學生也參與了課件的編寫工作,他們的名字都出現在所做課件中。借此機會,向他們表示衷心的感謝!
盡管作者盡了最大努力,但限于水平,書中疏漏之處在所難免,希望讀者不吝賜教,以便借助清華大學出版社網站及時改正。讀者可通過505810175@qq.com與作者取得聯系。
作者2014年12月于長安大學
第1章 緒論
1.1 抽象數據類型的表示與實現
1.2 算法和算法分析
第2章 線性表
2.1 線性表的類型定義
2.2 線性表的順序表示和實現
2.3 線性表的鏈式表示和實現