高等學校教材·數據結構算法解析(數據結構算法解析)

高等學校教材·數據結構算法解析

數據結構算法解析一般指本詞條

《高等學校教材·數據結構算法解析》為嚴蔚敏吳偉民編著的《數據結構(C語言版)》的學習輔導書。主要內容包括教科書中各主要數據存儲結構的基本操作函式、調用這些基本操作的主要程式和程式運行結果以及教科書中各主要數據存儲結構的圖示。

基本介紹

  • 書名:數據結構算法解析
  • 作者:高一凡
  • ISBN:9787302158790
  • 定價:29.5元
  • 出版社:清華大學出版社
  • 出版時間:2013-5-29
  • 裝幀:平裝
  • 開本:16
圖書前言,目錄,

圖書前言

作者多年講授“數據結構”課程,所用教材為清華大學出版社出版,嚴蔚敏、吳偉民編著的《數據結構(C語言版)》(以下簡稱為教科書)。根據多年的授課經驗,作者深知學習“數據結構”的關鍵點:
首先,要產生興趣,興趣是求知的動力。
其次,要加強形象思維訓練,用形象思維幫助建立抽象思維。
最後,要使算法活起來,使算法不再是抽象的、枯燥的、孤立的、晦澀的,而是具體的、生動的、互相有聯繫的、易於理解的。
本書是作者多年來潛心研究的成果,其中有許多獨到之處:
一、 本書不僅包括教科書中絕大多數算法的實現,對於許多主要的存儲結構,也包括了它們的基本操作的實現。這些基本操作構成了存儲結構的完整體系,使得該存儲結構可以直接使用在需要的地方。如在第7章的拓撲排序中就用到了第3章順序棧的存儲結構和基本操作。作者也經常直接將本書的存儲結構和基本操作用在自己的科研課題程式中,效果都很好。讀者如果需要了解少數教科書中提及而本書中未提及的算法、存儲結構和基本操作,可以參考閱讀本書後面的參考文獻[3]。
二、 為了加強形象思維訓練,作者繪製了各種數據存儲結構、算法、程式運行過程的示意圖,總計281幅(有些圖本身又由一系列小圖組成)。這些圖清楚地說明了數據的存儲結構和算法。
三、 通過將算法編寫到計算機可運行的程式中的方法,使算法活起來。對於可運行的算法,輸出變數、單步執行、設定斷點、修改算法、嘗試各種輸入數據等都是輕而易舉的,這些做法都有助於深刻地理解算法。
四、 對於較難理解的算法都有詳細的、圖文並茂的解析,有些解析(如平衡二叉樹)還包含作者自己的研究。較為簡單的算法,也儘量利用程式中的空白處,多加注釋。對於相應於教科書算法中須說明的新增行與修改行,在注釋行中也分別注以“新增”與“修改”。
五、 本書第7章以後的許多程式中的數據來自文本格式的數據檔案,避免了人工鍵盤輸入的麻煩,也有利於掌握使用檔案輸入輸出的方法(這是很多學生不熟悉,卻又很重要的方法)。根據程式所用檔案的格式,讀者很容易編寫出自己需要的數據檔案。
六、 本書除了實現教科書中已有的算法,還實現了克魯斯卡爾、2路插入排序(包括改進的2路插入排序)、樹形選擇排序等教科書中沒有寫出的算法。
七、 本書還包含了許多編程的技巧和小竅門,這些是作者多年編程所積累的經驗。
有教科書和本書對算法和數據結構的詳細講解,又有可執行的程式,還有程式的運行結果,加上讀者自己的思考和努力,還有什麼學不會的呢?甚至會覺得,數據結構是簡單的,又是有趣的,還是有用的。其中的許多算法是巧妙的、啟迪心智的,徜徉其中,其樂無窮。
本書緊密配合教科書,故在章節編排上儘量與教科書保持一致,以便讀者對照查找。教科書的第8章和第12章由於內容較為獨立,並套用較少,故沒有收進本書。因此,教科書的第9、10、11章在本書中相應地成為第8、9、10章。同樣,教科書中有些節的內容沒有收進本書,後面節的編號隨之減小。但各章節的名稱與教科書保持一致。
本書所有程式都在Borland C++ 3.1和Microsoft Visual C++ 6.0下運行通過。這些程式都可通過清華大學出版社的網站下載。

目錄

第1章緒論
1.1抽象數據類型的表示與實現
1.2算法和算法分析
第2章線性表
2.1線性表的類型定義
2.2線性表的順序表示和實現
2.3線性表的鏈式表示和實現
2.3.1線性鍊表
2.3.2循環鍊表
2.3.3雙向鍊表
第3章佇列
3.1棧
3.2棧的套用舉例
3.2.1數制轉換
3.2.2行編輯程式
3.2.3迷宮求解
3.2.4表達式求值
3.3棧與遞歸的實現
3.4佇列
3.4.1鏈佇列——佇列的鏈式表示和實現
3.4.2循環佇列——佇列的順序表示和實現
第4章串
4.1串類型的定義
4.2串的表示和實現
4.2.1定長順序存儲表示
4.2.2堆分配存儲表示
4.3串的模式匹配算法
4.3.1求子串位置的定位函式Index(S,T,pos)
4.3.2模式匹配的一種改進算法
第5章數組和廣義表
5.1數組的順序表示和實現
5.2矩陣的壓縮存儲
5.3廣義表的定義
5.4廣義表的存儲結構
5.5廣義表的遞歸算法
第6章樹和二叉樹
6.1二叉樹
6.2遍歷二叉樹和線索二叉樹
6.2.1遍歷二叉樹
6.2.2線索二叉樹
6.3樹和森林
6.4赫夫曼樹及其套用
6.4.1最優二叉樹(赫夫曼樹)
6.4.2赫夫曼編碼
第7章圖
7.1圖的存儲結構
7.1.1數組表示法
7.1.2鄰接表
7.2圖的遍歷
7.2.1深度優先搜尋
7.2.2廣度優先搜尋
7.3圖的連通性問題
7.3.1無向圖的連通分量和生成樹
7.3.2最小生成樹
7.3.3關節點和重連通分量
7.4有向無環圖及其套用
7.4.1拓撲排序
7.4.2關鍵路徑
7.5最短路徑
7.5.1從某個源點到其餘各頂點的最短路徑
7.5.2每一對頂點之間的最短路徑
第8章查找
8.1靜態查找表
8.1.1順序表的查找
8.1.2有序表的查找
8.1.3靜態樹表的查找
8.2動態查找表
8.2.1二叉排序樹和平衡二叉樹
8.2.2B_樹和B+樹
8.2.3鍵樹
8.3哈希表
8.3.1處理衝突的方法
8.3.2哈希表的查找及其分析
第9章內部排序
9.1概述
9.2插入排序
9.2.1直接插入排序
9.2.2其他插入排序
9.2.3希爾排序
9.3快速排序
9.4選擇排序
9.5歸併排序
9.6基數排序
9.7各種內部排序方法的比較討論
第10章外部排序
10.1外部排序的方法
10.2多路平衡歸併的實現
10.3置換選擇排序
附錄A關於標準C程式
參考文獻

相關詞條

熱門詞條

聯絡我們