《數據結構與算法分析(第二版)》是西安電子科技大學出版社出版的圖書。
基本介紹
- 中文名:數據結構與算法分析(第二版)
- 作者:榮政
- 出版社:西安電子科技大學
- 出版時間:2021年2月1日
- 開本:16 開
- 裝幀:平裝
- ISBN:9787560659749
內容簡介,目錄,
內容簡介
本書以高級程式設計能力的培養為目標,介紹數據結構和算法設計的相關知識,幫助讀者針對實際套用,選擇合適的數據結構並設計相應算法。全書分為兩部分,第一部分討論了軟體設計規範及程式設計的關鍵技術,並從數據的邏輯結構、存儲結構和運算實現角度介紹了常見的數據結構及典型套用,涵蓋了線性表、棧、佇列、串、樹、圖等結構,以及索引結構和散列技術,該部分在介紹知識點的同時,通過具體實例的分析和設計,幫助讀者更深刻地理解所學知識,循序漸進培養學生設計複雜程式的能力。第二部分介紹了常用的經典算法,如分治策略、動態規劃、貪心策略、回溯法、分支界限法等,還介紹了軟體設計中一些常用的排序和查找算法。
書中每章後均附有習題,其中的基本概念題提供參考答案,部分算法設計題附帶分析和解析,供讀者參考。本書對部分算法提供了微課視頻,其動畫效果的演示有助於讀者理解書中的重點和難點。
該書可作為高等學校電子信息類數據結構課程的教學用書,也可作為計算機工程及套用相關讀者的參考用書。
目錄
第一部分 常見數據結構及套用
第1章 緒論
1.1 數據結構概述
1.1.1 數據結構的引入
1.1.2 數據結構的基本概念
1.1.3 數據結構與程式設計
1.2 算法分析
1.2.1 算法的定義及特點
1.2.2 算法的效率分析
1.3 程式設計的關鍵技術
1.3.1 程式結構設計
1.3.2 模組設計
1.3.3 良好的編程風格
1.3.4 排錯與測試
1.3.5 程式性能
1.4 程式設計步驟及實例
1.4.1 程式設計的步驟
1.4.2 程式設計實例
本章小結
習題
第2章 線性表
2.1 線性表的基本概念及運算
2.2 線性表的順序存儲實現——順序表
2.2.1 線性表的順序存儲實現
2.2.2 順序表的基本運算
2.3 線性表的鏈式存儲實現——鍊表
2.3.1 單鍊表
2.3.2 單鍊表的基本運算
2.3.3 循環鍊表
2.3.4 雙向鍊表
2.4 套用實例
2.4.1 順序表套用實例——學生學籍信息管理
2.4.2 鍊表套用實例——多項式的表示及運算
本章小結
習題
第3章 棧和佇列
3.1 棧
3.1.1 棧的定義及性質
3.1.2 順序存儲實現——順序棧
3.1.3 鏈式存儲實現——鏈棧
3.1.4 棧的套用
3.2 佇列
3.2.1 佇列的定義及性質
3.2.2 順序存儲實現——循環佇列
3.2.3 鏈式存儲實現——鏈佇列
3.2.4 佇列的套用
3.3 套用實例
3.3.1 迷宮問題
3.3.2 離散事件的仿真——銀行排隊問題
本章小結
習題
第4章 串和數組
4.1 串及基本運算
4.2 串的存儲實現
4.2.1 順序存儲
4.2.2 鏈式存儲
4.2.3 索引存儲
4.3 串運算的實現
4.3.1 基本運算的實現
4.3.2 KMP算法
4.4 多維數組的存儲實現
4.5 矩陣的壓縮存儲
4.5.1 特殊矩陣
4.5.2 稀疏矩陣
4.6 套用實例
4.6.1 稀疏矩陣的運算
4.6.2 文本編輯
本章小結
習題
第5章 樹
5.1 樹的基本概念
5.2 二叉樹
5.3 二叉樹的存儲實現
5.3.1 順序存儲結構
5.3.2 鏈式存儲結構
5.3.3 二叉樹的建立
5.4 二叉樹的遍歷
5.4.1 二叉樹的深度優先遍歷
5.4.2 二叉樹的廣度優先遍歷
5.4.3 深度優先遍歷的非遞歸算法
5.4.4 從遍歷序列恢復二叉樹
5.4.5 遍歷算法的套用
5.5 線索二叉樹
5.5.1 線索二叉樹的建立
5.5.2 訪問線索二又樹
5.6 樹和森林
5.6.1 樹的存儲結構
5.6.2 樹、森林和二又樹之間的轉換
5.7 二叉樹的套用
5.7.1 哈夫曼樹及哈夫曼編碼
5.7.2 二叉排序樹
5.8 套用實例
5.8.1 數據的壓縮與解壓縮
5.8.2 基於二叉排序樹的通訊錄管理
本章小結
習題
第6章 圖
6.1 圖的基本概念
6.2 圖的存儲實現
6.2.1 鄰接矩陣
6.2.2 鄰接表
6.3 圖的遍歷
6.3.1 深度優先搜尋遍歷
6.3.2 廣度優先搜尋遍歷
6.4 生成樹和最小生成樹
6.5 最短路徑
6.5.1 從某個源點到其餘各項點的
最短路徑
6.5.2 每一對頂點之間的最短路徑
6.6 拓撲排序
6.7 關鍵路徑
6.8 套用實例
6.8.1 社交關係網路聚合性問題
6.8.2 課程學習實施方案的設計
本章小結
習題
第7章 索引結構與散列技術
7.1 索引結構及查找
7.1.1 線性索引
7.1.2 倒排表
7.2 散列技術
7.2.1 散列的概念
7.2.2 散列函式
7.2.3 解決衝突的方法
7.2.4 散列表的查找及分析
7.3 套用實例
7.3.1 銀行賬戶的管理
7.3.2 文本單詞的詞頻統計
本章小結
習題
第二部分 經典算法策略
第8章 縮小規模策略
8.1 分治與遞歸策略
8.1.1 遞歸算法設計
8.1.2 分治算法設計
8.2 遞歸的典型套用
8.2.1 HaJloi塔問題
8.2.2 全排列問題
8.3 分治策略的套用
8.3.1 二分搜尋技術
8.3.2 歸併排序
8.3.3 快速排序
本章小結
習題
第9章 動態規劃與貪心策略
9.1 動態規劃思想
9.1.1 矩陣連乘問題
9.1.2 動態規劃的基本要素
9.1.3 備忘錄方法
9.2 貪心策略的基本要素
9.3 貪心策略的套用
本章小結
習題
第10章 搜尋策略
10.1 回溯法
10.1.1 問題的解空間
10.1.2 回溯策略的基本思想
10.1.3 遞歸和疊代回溯
10.1.4 子集樹與排列樹
10.2 回溯法的套用
10.2.1 最大團問題
10.2.2 圖的m著色問題
10.2.3 旅行售貨員問題
10.3 分支界限法
10.3.1 分支界限法的基本思想
10.3.2 分支界限法與回溯法的區別
10.4 分支界限法的套用
10.4.1 裝載問題
10.4.2 布線問題
本章小結
習題
附錄
參考文獻