《數(shù)據(jù)結(jié)構(gòu)與算法(Java版普通高等教育計算機規(guī)劃教材)》(作者羅文劼、王苗、張小莉)共包括8章內(nèi)容,詳細講述了線性結(jié)構(gòu)、樹結(jié)構(gòu)和圖結(jié)構(gòu)中的數(shù)據(jù)表示及數(shù)據(jù)處理的方法,并對查找和排序兩種重要的數(shù)據(jù)處理技術(shù)作了細致的探討。書中對每一類數(shù)據(jù)結(jié)構(gòu)的分析均按照“邏輯結(jié)構(gòu)—存儲結(jié)構(gòu)—基本運算的實現(xiàn)—時空性分析—典型例題—知識點小結(jié)—擴展學(xué)習(xí)導(dǎo)讀—練習(xí)題—實驗題”的順序來進行,算法全部采用Java語言描述,很容易轉(zhuǎn)換成程序!稊(shù)據(jù)結(jié)構(gòu)與算法(Java版普通高等教育計算機規(guī)劃教材)》語言敘述通俗易懂,由淺入深,算法可讀性好,應(yīng)用性強。書中還配有大量算法設(shè)計的例子,便于讀者理解和掌握數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)表示和數(shù)據(jù)處理的方法。
本書可作為高等院校計算機和信息類相關(guān)專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程的教材,也可作為高職高專同類專業(yè)的教學(xué)用書及各類工程技術(shù)人員的參考用書。
第1章 數(shù)據(jù)結(jié)構(gòu)與算法
1.1 引言
1.1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.1.2 數(shù)據(jù)結(jié)構(gòu)課程的內(nèi)容
1.2 數(shù)據(jù)結(jié)構(gòu)的概念
1.2.1 基本概念和術(shù)語
1.2.2 抽象數(shù)據(jù)類型
1.3 數(shù)據(jù)結(jié)構(gòu)的描述方法
1.3.1 數(shù)據(jù)結(jié)構(gòu)的C語言描述
1.3.2 數(shù)據(jù)結(jié)構(gòu)的C++語言描述
1.3.3 數(shù)據(jù)結(jié)構(gòu)的Java語言描述
1.4 算法
1.4.1 算法及其特征
出版說明
前言
第1章 數(shù)據(jù)結(jié)構(gòu)與算法
1.1 引言
1.1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.1.2 數(shù)據(jù)結(jié)構(gòu)課程的內(nèi)容
1.2 數(shù)據(jù)結(jié)構(gòu)的概念
1.2.1 基本概念和術(shù)語
1.2.2 抽象數(shù)據(jù)類型
1.3 數(shù)據(jù)結(jié)構(gòu)的描述方法
1.3.1 數(shù)據(jù)結(jié)構(gòu)的C語言描述
1.3.2 數(shù)據(jù)結(jié)構(gòu)的C++語言描述
1.3.3 數(shù)據(jù)結(jié)構(gòu)的Java語言描述
1.4 算法
1.4.1 算法及其特征
1.4.2 算法的描述
1.4.3 算法的性能分析
1.5 典型例題
1.6 本章小結(jié)
1.6.1 知識點小結(jié)
1.6.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目1比較算法復(fù)雜性描述函數(shù)的
增長
題目2矩陣連乘算法的時間和空間
復(fù)雜度
第2章 遞歸
2.1 引言
2.1.1 問題的提出
2.1.2 什么是遞歸
2.2 遞歸調(diào)用的實現(xiàn)原理
2.2.1 遞歸算法的構(gòu)成
2.2.2 遞歸調(diào)用的內(nèi)部過程
2.2.3 遞歸的正確性證明
2.3 遞歸轉(zhuǎn)化為非遞歸
2.3.1 遞歸轉(zhuǎn)化為遞推
2.3.2 遞歸轉(zhuǎn)化為回溯
2.3.3 手工模擬遞歸
2.4 典型例題
2.5 本章小結(jié)
2.5.1 知識點小結(jié)
2.5.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目1全排列的遞歸實現(xiàn)
題目2八皇后問題
題目3比較遞歸與非遞歸算法的
時空效率
第3章 線性結(jié)構(gòu)
3.1 引言
3.1.1 問題的提出
3.1.2 線性表的定義
3.1.3 線性表的基本運算
3.2 線性表的順序存儲與實現(xiàn)
3.2.1 順序表
3.2.2 順序表上基本運算的實現(xiàn)
3.2.3 順序表應(yīng)用舉例
3.3 線性表的鏈?zhǔn)酱鎯εc實現(xiàn)
3.3.1 單鏈表
3.3.2 單鏈表上基本運算的實現(xiàn)
3.3.3 循環(huán)鏈表
3.3.4 雙向鏈表
3.3.5 鏈表應(yīng)用舉例
3.4 順序表和鏈表的比較
3.5 堆棧
3.5.1 堆棧的定義及基本運算
3.5.2 堆棧的存儲及運算實現(xiàn)
3.5.3 堆棧的應(yīng)用舉例
3.6 隊列
3.6.1 隊列的定義及基本運算
3.6.2 隊列的存儲及運算實現(xiàn)
3.6.3 隊列的應(yīng)用舉例
3.7 其他線性結(jié)構(gòu)及擴展
3.7.1 字符串
3.7.2 數(shù)組
3.7.3 特殊矩陣
3.7.4 稀疏矩陣
3.8 典型例題
3.9 本章小結(jié)
3.9.1 知識點小結(jié)
3.9.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目1Josephus環(huán)問題
題目2一元多項式運算
題目3模擬停車場管理
第4章 樹結(jié)構(gòu)
4.1 引言
4.1.1 問題提出
4.1.2 相關(guān)概念
4.2 二叉樹
4.2.1 二叉樹的基本運算
4.2.2 二叉樹的主要性質(zhì)
4.2.3 二叉樹的存儲
4.2.4 二叉樹基本運算的實現(xiàn)
4.3 二叉樹的遍歷
4.3.1 遞歸方法實現(xiàn)二叉樹遍歷
4.3.2 非遞歸方法實現(xiàn)二叉樹的
三種遍歷
4.3.3 按層次遍歷二叉樹
4.4 二叉樹遍歷的應(yīng)用
4.4.1 構(gòu)造二叉樹的二叉鏈表存儲
4.4.2 在二叉樹中查找值為x的
數(shù)據(jù)元素
4.4.3 統(tǒng)計給定二叉樹中葉子結(jié)點的
數(shù)目
4.4.4 表達式運算
4.4.5 由遍歷序列恢復(fù)二叉樹
4.5 線索二叉樹
4.5.1 線索二叉樹的定義及其結(jié)構(gòu)
4.5.2 線索二叉樹的創(chuàng)建
4.5.3 線索二叉樹的遍歷
4.6 最優(yōu)二叉樹
4.6.1 最優(yōu)二叉樹的概念
4.6.2 最優(yōu)二叉樹的構(gòu)造
4.6.3 最優(yōu)二叉樹的應(yīng)用——哈夫曼
編碼
4.7 樹
4.7.1 樹的基本操作
4.7.2 樹的表示
4.7.3 樹的存儲
4.7.4 樹和森林與二叉樹之間的
轉(zhuǎn)換
4.7.5 樹或森林的遍歷
4.7.6 樹的應(yīng)用
4.8 典型例題
4.9 本章小結(jié)
4.9.1 知識點小結(jié)
4.9.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目哈夫曼編碼/譯碼器
第5章 圖結(jié)構(gòu)
5.1 引言
5.1.1 問題的提出
5.1.2 相關(guān)概念
5.1.3 圖的基本操作
5.2 圖的存儲
5.2.1 鄰接矩陣
5.2.2 鄰接表
5.3 圖的遍歷
5.3.1 深度優(yōu)先搜索
5.3.2 廣度優(yōu)先搜索
5.3.3 遍歷圖的簡單應(yīng)用
5.4 生成樹和最小生成樹
5.4.1 生成樹和生成森林
5.4.2 最小生成樹
5.4.3 構(gòu)造最小生成樹的Prim算法
5.4.4 構(gòu)造最小生成樹的Kruskal
算法
5.5 最短路徑
5.5.1 單源點最短路徑——Dijkstra
算法
5.5.2 每一對頂點之間的最短路徑
5.6 拓撲排序與關(guān)鍵路徑
5.6.1 有向無環(huán)圖的概念
5.6.2 AOV網(wǎng)與拓撲排序
5.6.3 AOE網(wǎng)與關(guān)鍵路徑
5.7 典型例題
5.8 本章小結(jié)
5.8.1 知識點小結(jié)
5.8.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目校園導(dǎo)游程序
第6章 查找技術(shù)
第7章 排序技術(shù)
第8章 擴展應(yīng)用舉例
參考文獻
出版說明
前言
第1章 數(shù)據(jù)結(jié)構(gòu)與算法
1.1 引言
1.1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.1.2 數(shù)據(jù)結(jié)構(gòu)課程的內(nèi)容
1.2 數(shù)據(jù)結(jié)構(gòu)的概念
1.2.1 基本概念和術(shù)語
1.2.2 抽象數(shù)據(jù)類型
1.3 數(shù)據(jù)結(jié)構(gòu)的描述方法
1.3.1 數(shù)據(jù)結(jié)構(gòu)的C語言描述
1.3.2 數(shù)據(jù)結(jié)構(gòu)的C++語言描述
1.3.3 數(shù)據(jù)結(jié)構(gòu)的Java語言描述
1.4 算法
1.4.1 算法及其特征
出版說明
前言
第1章 數(shù)據(jù)結(jié)構(gòu)與算法
1.1 引言
1.1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.1.2 數(shù)據(jù)結(jié)構(gòu)課程的內(nèi)容
1.2 數(shù)據(jù)結(jié)構(gòu)的概念
1.2.1 基本概念和術(shù)語
1.2.2 抽象數(shù)據(jù)類型
1.3 數(shù)據(jù)結(jié)構(gòu)的描述方法
1.3.1 數(shù)據(jù)結(jié)構(gòu)的C語言描述
1.3.2 數(shù)據(jù)結(jié)構(gòu)的C++語言描述
1.3.3 數(shù)據(jù)結(jié)構(gòu)的Java語言描述
1.4 算法
1.4.1 算法及其特征
1.4.2 算法的描述
1.4.3 算法的性能分析
1.5 典型例題
1.6 本章小結(jié)
1.6.1 知識點小結(jié)
1.6.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目1比較算法復(fù)雜性描述函數(shù)的
增長
題目2矩陣連乘算法的時間和空間
復(fù)雜度
第2章 遞歸
2.1 引言
2.1.1 問題的提出
2.1.2 什么是遞歸
2.2 遞歸調(diào)用的實現(xiàn)原理
2.2.1 遞歸算法的構(gòu)成
2.2.2 遞歸調(diào)用的內(nèi)部過程
2.2.3 遞歸的正確性證明
2.3 遞歸轉(zhuǎn)化為非遞歸
2.3.1 遞歸轉(zhuǎn)化為遞推
2.3.2 遞歸轉(zhuǎn)化為回溯
2.3.3 手工模擬遞歸
2.4 典型例題
2.5 本章小結(jié)
2.5.1 知識點小結(jié)
2.5.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目1全排列的遞歸實現(xiàn)
題目2八皇后問題
題目3比較遞歸與非遞歸算法的
時空效率
第3章 線性結(jié)構(gòu)
3.1 引言
3.1.1 問題的提出
3.1.2 線性表的定義
3.1.3 線性表的基本運算
3.2 線性表的順序存儲與實現(xiàn)
3.2.1 順序表
3.2.2 順序表上基本運算的實現(xiàn)
3.2.3 順序表應(yīng)用舉例
3.3 線性表的鏈?zhǔn)酱鎯εc實現(xiàn)
3.3.1 單鏈表
3.3.2 單鏈表上基本運算的實現(xiàn)
3.3.3 循環(huán)鏈表
3.3.4 雙向鏈表
3.3.5 鏈表應(yīng)用舉例
3.4 順序表和鏈表的比較
3.5 堆棧
3.5.1 堆棧的定義及基本運算
3.5.2 堆棧的存儲及運算實現(xiàn)
3.5.3 堆棧的應(yīng)用舉例
3.6 隊列
3.6.1 隊列的定義及基本運算
3.6.2 隊列的存儲及運算實現(xiàn)
3.6.3 隊列的應(yīng)用舉例
3.7 其他線性結(jié)構(gòu)及擴展
3.7.1 字符串
3.7.2 數(shù)組
3.7.3 特殊矩陣
3.7.4 稀疏矩陣
3.8 典型例題
3.9 本章小結(jié)
3.9.1 知識點小結(jié)
3.9.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目1Josephus環(huán)問題
題目2一元多項式運算
題目3模擬停車場管理
第4章 樹結(jié)構(gòu)
4.1 引言
4.1.1 問題提出
4.1.2 相關(guān)概念
4.2 二叉樹
4.2.1 二叉樹的基本運算
4.2.2 二叉樹的主要性質(zhì)
4.2.3 二叉樹的存儲
4.2.4 二叉樹基本運算的實現(xiàn)
4.3 二叉樹的遍歷
4.3.1 遞歸方法實現(xiàn)二叉樹遍歷
4.3.2 非遞歸方法實現(xiàn)二叉樹的
三種遍歷
4.3.3 按層次遍歷二叉樹
4.4 二叉樹遍歷的應(yīng)用
4.4.1 構(gòu)造二叉樹的二叉鏈表存儲
4.4.2 在二叉樹中查找值為x的
數(shù)據(jù)元素
4.4.3 統(tǒng)計給定二叉樹中葉子結(jié)點的
數(shù)目
4.4.4 表達式運算
4.4.5 由遍歷序列恢復(fù)二叉樹
4.5 線索二叉樹
4.5.1 線索二叉樹的定義及其結(jié)構(gòu)
4.5.2 線索二叉樹的創(chuàng)建
4.5.3 線索二叉樹的遍歷
4.6 最優(yōu)二叉樹
4.6.1 最優(yōu)二叉樹的概念
4.6.2 最優(yōu)二叉樹的構(gòu)造
4.6.3 最優(yōu)二叉樹的應(yīng)用——哈夫曼
編碼
4.7 樹
4.7.1 樹的基本操作
4.7.2 樹的表示
4.7.3 樹的存儲
4.7.4 樹和森林與二叉樹之間的
轉(zhuǎn)換
4.7.5 樹或森林的遍歷
4.7.6 樹的應(yīng)用
4.8 典型例題
4.9 本章小結(jié)
4.9.1 知識點小結(jié)
4.9.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目哈夫曼編碼/譯碼器
第5章 圖結(jié)構(gòu)
5.1 引言
5.1.1 問題的提出
5.1.2 相關(guān)概念
5.1.3 圖的基本操作
5.2 圖的存儲
5.2.1 鄰接矩陣
5.2.2 鄰接表
5.3 圖的遍歷
5.3.1 深度優(yōu)先搜索
5.3.2 廣度優(yōu)先搜索
5.3.3 遍歷圖的簡單應(yīng)用
5.4 生成樹和最小生成樹
5.4.1 生成樹和生成森林
5.4.2 最小生成樹
5.4.3 構(gòu)造最小生成樹的Prim算法
5.4.4 構(gòu)造最小生成樹的Kruskal
算法
5.5 最短路徑
5.5.1 單源點最短路徑——Dijkstra
算法
5.5.2 每一對頂點之間的最短路徑
5.6 拓撲排序與關(guān)鍵路徑
5.6.1 有向無環(huán)圖的概念
5.6.2 AOV網(wǎng)與拓撲排序
5.6.3 AOE網(wǎng)與關(guān)鍵路徑
5.7 典型例題
5.8 本章小結(jié)
5.8.1 知識點小結(jié)
5.8.2 擴展學(xué)習(xí)導(dǎo)讀
練習(xí)題
實驗題
題目校園導(dǎo)游程序
第6章 查找技術(shù)
第7章 排序技術(shù)
第8章 擴展應(yīng)用舉例
參考文獻