前言
第一章 緒論
第一節(jié) 引言
第二節(jié) 數據結構的基本概念
第三節(jié) 算法的概念、算法描述和算法分析
一、算法的概念
二、算法描述
三、算法分析
習題
第二章 線性表和數組
第一節(jié) 線性表及其存儲表示
一、線性表
二、線性表的存儲表示
第二節(jié) 線性表的查找、插入和刪除
一、線性表的查找
二、線性表的插入和刪除
第三節(jié) 棧和隊列
一、線的結構及運算
二、計算表達式——棧的應用舉例
三、隊列的結構及運算
第四節(jié) 數組的順序分配
第五節(jié) 稀疏矩陣
第六節(jié) 線性表的應用舉例
習題
第三章 鏈表
第一節(jié) 線性鏈表的存儲表示
第二節(jié) 線性鏈表的建立、查找、插入和刪除
一、線性鏈表的建立和查找
二、線性鏈表的插入和刪除
第三節(jié) 鏈棧和鏈隊列
一、鏈棧的結構及運算
二、鏈隊列的結構及運算
第四節(jié) 循環(huán)鏈表
一、循環(huán)鏈表的結構
二、循環(huán)鏈表的查找、插入和刪除
第五節(jié) 雙向鏈表
一、雙向鏈表的結構
二、雙向鏈表的查找、插入和刪除
第六節(jié) 鏈表的應用
一、多項式相加問題
二、約瑟夫環(huán)問題
習題
第四章 串
第一節(jié) 串的基本概念
第二節(jié) 串的基本運算
第三節(jié) 串的存儲結構
一、串的靜態(tài)存儲結構
二、串的動態(tài)存儲結構
第四節(jié) 串基本操作的實現
一、求子串定位函數index(s,t)
二、求替換運算replace(a,b,c)
第五節(jié) 串操作應用——文本編輯
習題
第五章 樹
第一節(jié) 一般樹的概念
一、一般樹的定義
二、基本術語
三、樹的存儲結構
第二節(jié) 二叉樹
一、二叉樹的基本概念
二、二叉樹的性質
三、二叉樹的存儲
第三節(jié) 二叉樹的遍歷
一、二叉樹的遍歷方式
二、遍歷算法
三、由數據序列恢復二叉樹
第四節(jié) 線索二叉樹
一、線索二叉樹的結構
二、線索二叉樹的檢索
第五節(jié) 二叉樹的應用——表達式樹
一、表達式樹的概念
二、構造表達式樹的方法
三、構造表達式樹的算法
第六節(jié) 二叉排序樹
一、二叉排序樹的結構
二、建立二叉排序樹的算法
三、在二叉排序樹中刪除結點
四、二叉查找樹
第七節(jié) 哈夫曼樹
一、樹的路徑長度和帶權路徑長度
二、哈夫曼樹和哈夫曼算法
第八節(jié) 二叉樹與樹、森林之間的轉換
一、二叉樹與樹之間的轉換
二、二叉樹與森林之間的轉換
習題
第六章 圖
第一節(jié) 基本術語
第二節(jié) 圖的存儲結構
一、鄰接矩陣
二、鄰接鏈表
三、多重鄰接表
第三節(jié) 遍歷圖
一、深度優(yōu)先搜索法
二、廣度優(yōu)先搜索法
第四節(jié) 最短路徑
一、從某個源點到其他各項頂點的最短路徑
二、求每一對頂點之間的最短路徑
第五節(jié) 拓撲排序
一、AOV網
二、拓撲排序的方法
第六節(jié) 關鍵路徑
習題
第七章 查找
第一節(jié) 順序查找
第二節(jié) 折半查找
第三節(jié) 分塊查找
第四節(jié) 哈希法
一、哈希法查找的概念
二、哈希函數的構造
三、解決沖突的方法
第五節(jié) 各種查找方法的比較及應用
一、各種查找方法的比較
二、應用舉例
習題
第八章 排序
第一節(jié) 插入排序
一、直接插入排序
二、希爾排序
第二節(jié) 選擇排序
一、直接選擇排序
二、堆排序
第三節(jié) 交換排序
一、冒泡排序
二、快速排序
第四節(jié) 歸并排序
第五節(jié) 各種排序方法的比較及應用
一、各種排序方法的比較
二、應用舉例
習題
第九章 文件
第一節(jié) 文件的基本知識
一、文件的概念
二、文件的存儲介質
三、文件的種類
四、文件的操作
第二節(jié) 文件的結構
一、順序文件
二、索引文件
三、索引順序文件ISAM
習題
實驗
實驗一 線性表的查找、插入、刪除
實驗二 線性鏈表的查找、插入、刪除
實驗三 循環(huán)鏈表的操作
實驗四 串操作運算
實驗五 線索二叉樹的檢索
實驗六 二叉排序樹的建立及中序遍歷
實驗七 最短路徑的實現
實驗八 查找練習
實驗九 學生成績管理
參考文獻