第1章緒論
1.1什么是數據結構
1.1.1數據結構起源
1.1.2數據結構研究的內容
1.1.3學習數據結構的必要性
1.1.4如何學好數據結構
1.2數據的邏輯結構
1.2.1基本概念
1.2.2邏輯結構的描述
1.3數據的存儲結構
1.4算法和算法分析
1.4.1算法特性
1.4.2影響算法效率的因素
1.4.3算法效率的評價
上機實訓
習題
第2章線性表
2.1內存靜態(tài)分配
2.2線性表的定義與運算
2.2.1線性表的定義
2.2.2線性表的基本操作
2.3線性表的順序存儲結構
2.3.1順序表
2.3.2順序表上基本運算的實現
2.4應用舉例及分析
上機實訓
習題
第3章鏈表
3.1內存動態(tài)分配
3.1.1函數malloc()
3.1.2函數free()
3.2線性表的鏈式存儲
3.2.1線性鏈表
3.2.2單鏈表上的基本運算
3.2.3循環(huán)鏈表
3.2.4雙向鏈表
3.3順序表和鏈表的比較
3.4應用舉例及分析
上機實訓
習題
第4章棧和隊列
4.1棧
4.1.1棧的定義及基本操作
4.1.2棧的順序存儲結構
4.1.3棧的鏈式存儲結構
4.2隊列
4.2.1隊列的定義及基本操作
4.2.2隊列的順序存儲結構
4.2.3隊列的鏈式存儲結構
4.3應用舉例及分析
上機實訓
習題
第5章串和廣義表
5.1串的定義和基本運算
5.1.1串的定義
5.1.2串的基本運算
5.2串的表示和實現
5.2.1定長順序存儲
5.2.2鏈式存儲
5.2.3堆分配存儲
5.3串基本運算的實現
5.4廣義表
5.4.1廣義表的定義和性質
5.4.2廣義表的存儲
5.5應用舉例及分析
上機實訓
習題
第6章樹和二叉樹
6.1樹的定義和術語
6.1.1樹的定義
6.1.2基本術語
6.1.3樹的存儲
6.2二叉樹
6.2.1二叉樹的定義
6.2.2二叉樹的性質
6.2.3二叉樹的存儲
6.2.4二叉樹的建立
6.3遍歷二叉樹
6.3.1遍歷二叉樹
6.3.2恢復二叉樹
6.4樹、森林與二叉樹的轉換
6.4.1一般樹轉換為二叉樹
6.4.2森林轉換為二叉樹
6.4.3二叉樹轉換為樹和森林
6.5二叉樹的應用舉例
6.6哈夫曼樹及其應用
6.6.1哈夫曼樹的引入
6.6.2哈夫曼樹的建立
6.6.3哈夫曼編碼
上機實訓
習題
第7章圖
7.1圖的定義和術語
7.1.1圖的定義
7.1.2圖的相關術語
7.1.3圖的基本操作
7.2圖的存儲表示
7.2.1鄰接矩陣
7.2.2鄰接表
7.2.3邊集數組
7.3圖的遍歷
7.3.1深度優(yōu)先搜索
7.3.2廣度優(yōu)先搜索
7.4生成樹和最小生成樹
7.4.1生成樹和生成森林
7.4.2最小生成樹
7.4.3普里姆(Prim)算法
7.4.4克魯斯卡爾(Kruskal)算法
7.5單源最短路徑
7.5.1單源最短路徑的概念
7.5.2求單源最短路徑的方法
7.6AOV網與拓撲排序
7.6.1AOV網與拓撲排序
7.6.2拓撲排序的實現
7.7AOE網與關鍵路徑
7.7.1概述
7.7.2關鍵路徑的確定
上機實訓
習題
第8章查找
8.1查找的基本概念
8.2靜態(tài)查找表
8.2.1順序查找
8.2.2二分查找
8.2.3索引順序查找
8.3動態(tài)查找表
8.3.1二叉排序樹定義
8.3.2二叉排序樹的插入和生成
8.3.3二叉排序樹的刪除
8.3.4二叉排序樹上的查找
8.4散列表
8.4.1散列表與散列函數
8.4.2散列函數的構造方法
8.4.3處理沖突的方法
8.4.4散列表的查找及分析
上機實訓
習題
第9章排序
9.1基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2二分插入排序
9.2.3希爾排序
9.3交換排序
9.3.1冒泡排序
9.3.2快速排序
9.4選擇排序
9.4.1簡單選擇排序
9.4.2堆排序
9.5歸并排序
9.6各種排序方法的比較
上機實訓
習題
附錄設計性上機實訓
課程設計指導
課程設計參考題目
課程設計(實訓)報告參考格式
參考文獻