本書全面系統地介紹數據結構的基礎理論和算法設計方法,包括線性表、樹、圖等數據結構以及查找和排序算法。內容涉及的廣度和深度符合計算機專業本科的基本要求,體現了本科教學的培養目標。本書採用C++語言以面向對象方法描述數據結構和算法。本書理論敘述精練,結構安排合理,重點是數據結構設計和算法設計,通過降低理論難度和抽象性、加強實踐環節等措施,力求增強學生的理解能力和套用能力。本書有配套的教學資料包,包括電子課件、原始碼及習題解答等。
基本介紹
- 書名:計算機類本科規劃教材:數據結構
- 出版社:電子工業出版社
- 頁數:318頁
- 開本:16
- 品牌:電子工業出版社
- 作者:葉核亞
- 出版日期:2014年2月1日
- 語種:簡體中文
- ISBN:7121219859
基本介紹
內容簡介
作者簡介
圖書目錄
1.1 數據結構的基本概念
1.1.1 為什麼要學習數據結構
1.1.2 什麼是數據結構
1.1.3 數據類型與抽象數據類型
1.2 算法
1.2.1 什麼是算法
1.2.2 算法分析
1.2.3 算法設計
1.3 Visual C++集成開發環境
1.3.1 Visual C++ 2008集成開發環境
1.3.2 新建、編輯、編譯和運行C++程式
1.3.3 程式調試技術
習題1
實驗1 算法設計與分析
第2章 線性表
2.1 線性表抽象數據類型
2.2 線性表的順序存儲和實現
2.2.1 線性表的順序存儲結構
2.2.2 順序表
2.2.3 排序順序表
2.3 線性表的鏈式存儲和實現
2.3.1 線性表的鏈式存儲結構
2.3.2 單鍊表
2.3.3 雙鍊表
2.4 線性表的套用:多項式的表示及運算
2.4.1 一元多項式的表示及運算
2.4.2 二元多項式的表示及運算
習題2
實驗2 線性表的基本操作
第3章 串
3.1 串抽象數據類型
3.2 串的存儲和實現
3.2.1 串的存儲結構
3.2.2 使用char*表示字元串存在錯誤
3.2.3 字元串類
3.3 串的模式匹配
3.3.1 Brute—Force算法
3.3.2 KMP算法
習題3
實驗3 串的基本操作及模式匹配算法
第4章 棧和佇列
4.1 棧
4.1.1 棧抽象數據類型
4.1.2 順序棧
4.1.3 鏈式棧
4.1.4 棧的套用
4.2 佇列
4.2.1 佇列抽象數據類型
4.2.2 順序佇列
4.2.3 鏈式佇列
4.2.4 佇列的套用
4.3 優先佇列
4.4 遞歸
習題4
實驗4 棧和佇列以及遞歸算法
第5章 數組和廣義表
5.1 數組
5.2 特殊矩陣的壓縮存儲
5.2.1 三角矩陣、對稱矩陣和對角矩陣的壓縮存儲
5.2.2 稀疏矩陣的壓縮存儲
5.3 廣義表
習題5
實驗5 特殊矩陣和廣義表的存儲和運算
第6章 樹和二叉樹
6.1 樹及其抽象數據類型
6.1.1 樹定義
6.1.2 樹的術語
6.1.3 樹的表示法
6.1.4 樹抽象數據類型
6.2 二叉樹
6.2.1 二叉樹定義
6.2.2 二叉樹性質
6.2.3 二叉樹的遍歷及構造規則
6.2.4 二叉樹的存儲結構
6.2.5 二叉樹的二叉鍊表實現
6.3 線索二叉樹
6.3.1 線索二叉樹定義
6.3.2 中序線索二叉樹
6.4 Huffman樹
6.4.1 Huffman編碼
6.4.2 Huffman樹及其構造算法
6.5 樹的表示和實現
6.5.1 樹的遍歷規則
6.5.2 樹的存儲結構
6.5.3 樹的父母孩子兄弟鍊表實現
習題6
實驗6 樹和二叉樹的基本操作
第7章 圖
7.1 圖及其抽象數據類型
7.1.1 圖的基本概念
7.1.2 圖抽象數據類型
7.2 圖的表示和實現
7.2.1 圖的鄰接矩陣表示和實現
7.2.2 圖的鄰接表表示和實現
7.2.3 圖的鄰接多重表表示
7.3 圖的遍歷
7.3.1 圖的深度優先搜尋遍歷
7.3.2 圖的廣度優先搜尋遍歷
7.4 最小生成樹
7.4.1 生成樹
7.4.2 最小生成樹的構造算法
7.5 最短路徑
7.5.1 單源最短路徑
7.5.2 每對頂點間的最短路徑
習題7
實驗7 圖的表示和操作
第8章 查找
8.1 查找的基本概念
8.2 基於排序順序表的二分法查找
8.3 基於索引表的分塊查找
8.4 散列
8.5 二叉排序樹和平衡二叉樹
8.5.1 二叉排序樹
8.5.2 平衡二叉樹
習題8
實驗8 查找算法
第9章 排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序和折半插入排序
9.2.2 希爾排序
9.3 交換排序
9.3.1 冒泡排序
9.3.2 快速排序
9.4 選擇排序
9.4.1 直接選擇排序
9.4.2 堆排序
9.5 歸併排序
9.6 單/雙鍊表的排序算法
習題9
實驗9 排序算法設計及分析
第10章 綜合套用設計
10.1 算法設計策略
10.1.1 分治法
10.1.2 動態規劃法
10.1.3 貪心法
10.1.4 回溯法
10.2 課程設計的目的、要求和選題
附錄A ASCII碼錶(前128個)
附錄B C++運算符及其優先權
參考文獻