內容簡介
數據結構是計算機專業教學計劃中的核心課程,也是計算機及相關專業考研和水平等級考試的必考科目。要從事和計算機科學與技術相關的工作,尤其是計算機應用領域的開發和研製工作,必須具備堅實的數據結構基礎。在《數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計·》第1版成功的基礎上,作者進行瞭修訂,作為第2版,《數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計·》內容更貼閤《計算機學科碩士研究生入學考試專業基礎綜閤考試大綱》,可讀性和實用性更強。
《數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計·》介紹瞭數據結構、算法以及抽象數據類型的概念,介紹瞭綫性錶、棧、隊列和串、數組、樹和二叉樹、圖等常用數據結構,討論瞭常用的查找、排序和索引技術,給齣瞭較多的數據結構的應用實例。限於篇幅,把貫穿所有數據結構的綜閤案例放在瞭網站上,供讀者下載。
《數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計·》內容豐富,層次清晰,講解深入淺齣,可作為計算機及相關專業本、專科數據結構課程的教材,也可供從事計算機軟件開發和應用的工程技術人員閱讀、參考。
目錄
第1章 緒論
1.1 數據結構在程序設計中的作用
1.2 本書討論的主要內容
1.3 數據結構的基本概念
1.3.1 數據結構
1.3.2 抽象數據類型
1.4 算法及算法分析
1.4.1 算法及其描述方法
1.4.2 算法分析
思想火花——好算法是反復努力和重新修正的結果
習題1
思考題1
第2章 綫性錶
2.1 綫性錶的邏輯結構
2.1.1 綫性錶的定義
2.1.2 綫性錶的抽象數據類型定義
2.2 綫性錶的順序存儲結構及實現
2.2.1 綫性錶的順序存儲結構——順序錶
2.2.2 順序錶的實現
2.3 綫性錶的鏈接存儲結構及實現
2.3.1 單鏈錶
2.3.2 循環鏈錶
2.3.3 雙鏈錶
2.4 順序錶和鏈錶的比較
2.4.1 時間性能比較
2.4.2 空間性能比較
2.5 綫性錶的其他存儲方法
2.5.1 靜態鏈錶
2.5.2 間接尋址
2.6 應用舉例
2.6.1 順序錶的應用舉例——大整數求和
2.6.2 單鏈錶的應用舉例——一元多項式求和
思想火花——好程序要能識彆和處理各種輸入
習題2
思考題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 隊列的應用舉例——火車車廂重排
思想火花——直覺可能是錯誤的
習題3
思考題3
第4章 字符串和多維數組
4.1 字符串
4.1.1 字符串的定義
4.1.2 字符串的存儲結構
4.1.3 模式匹配
4.2 多維數組
4.2.1 數組的定義
4.2.2 數組的存儲結構與尋址
4.3 矩陣的壓縮存儲
4.3.1 對稱矩陣的壓縮存儲
4.3.2 三角矩陣的壓縮存儲
4.3.3 對角矩陣的壓縮存儲
4.3.4 稀疏矩陣的壓縮存儲
4.4 應用舉例
4.4.1 字符串的應用舉例——凱撒密碼
4.4.2 數組的應用舉例——幻方
思想火花——用常識性的思維去思考問題
習題4
思考題4
第5章 樹和二叉樹
5.1 樹的邏輯結構
5.1.1 樹的定義和基本術語
5.1.2 樹的抽象數據類型定義
5.1.3 樹的遍曆操作
5.2 樹的存儲結構
5.2.1 雙親錶示法
5.2.2 孩子錶示法
5.2.3 雙親孩子錶示法
5.2.4 孩子兄弟錶示法
5.3 二叉樹的邏輯結構
5.3.1 二叉樹的定義
5.3.2 二叉樹的基本性質
5.3.3 二叉樹的抽象數據類型定義
5.3.4 二叉樹的遍曆操作
5.4 二叉樹的存儲結構及實現
5.4.1 順序存儲結構
5.4.2 二叉鏈錶
5.4.3 三叉鏈錶
5.4.4 綫索鏈錶
5.5 二叉樹遍曆的非遞歸算法
5.5.1 前序遍曆非遞歸算法
5.5.2 中序遍曆非遞歸算法
5.5.3 後序遍曆非遞歸算法
5.6 樹、森林與二叉樹的轉換
5.7 應用舉例
5.7.1 二叉樹的應用舉例——哈夫曼樹及哈夫曼編碼
5.7.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.2.5 鄰接矩陣和鄰接錶的比較
6.3 最小生成樹
6.3.1 MST性質
6.3.2 Prim算法
6.3.3 Kruskal算法
6.4 最短路徑
6.4.1 Dijkstra算法
6.4.2 Floyd算法
6.5 有嚮無環圖及其應用
6.5.1 AOV網與拓撲排序
6.5.2 AOE網與關鍵路徑
6.6 應用舉例
6.6.1 圖的應用舉例1——七橋問題
6.6.2 圖的應用舉例2——七巧闆塗色
思想火花——數據模型在問題求解中的作用
習題6
思考題6
第7章 查找技術
7.1 概述
7.1.1 查找的基本概念
7.1.2 查找算法的性能
7.2 綫性錶的查找技術
7.2.1 順序查找
7.2.2 摺半查找
7.3 樹錶的查找技術
7.3.1 二叉排序樹
7.3.2 平衡二叉樹
7.4 散列錶的查找技術
7.4.1 概述
7.4.2 散列函數的設計
7.4.3 處理衝突的方法
7.4.4 散列查找的性能分析
7.4.5 開散列錶與閉散列錶的比較
思想火花——把注意力集中於主要因素,不要糾纏於噪聲
習題7
思考題7
第8章 排序技術
8.1 概述
8.1.1 排序的基本概念
8.1.2 排序算法的性能
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希爾排序
8.3 交換排序
8.3.1 起泡排序
8.3.2 快速排序
8.4 選擇排序
8.4.1 簡單選擇排序
8.4.2 堆排序
8.5 歸並排序
8.5.1 二路歸並排序的非遞歸實現
8.5.2 二路歸並排序的遞歸實現
8.6 分配排序
8.6.1 桶式排序
8.6.2 基數排序
8.7 各種排序方法的比較
思想火花——學會“盒子以外的思考”
習題8
思考題8
第9章 索引技術
9.1 索引的基本概念
9.2 綫性索引技術
9.2.1 稠密索引
9.2.2 分塊索引
9.2.3 多重錶
9.2.4 倒排錶
9.3 樹形索引
9.3.1 2-3樹
9.3.2 B_樹
9.3.3 B+樹
思想火花——隨處可見的索引
習題9
附錄A 預備知識
A.1 數學術語
A.2 級數求和
A.3 集閤
A.4 關係
附錄B C++語言基本語法
B.1 程序結構
B.2 數據類型
B.3 控製語句
B.4 輸入與輸齣
B.5 動態存儲分配
B.6 函數
B.7 類與對象
B.8 模闆
B.9 異常處理
附錄C 詞匯索引
參考文獻
數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計· 下載 mobi epub pdf txt 電子書 格式
數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計· 下載 mobi pdf epub txt 電子書 格式 2024
數據結構(C++版 第2版)/普通高校本科計算機專業特色教材精選·算法與程序設計· mobi epub pdf txt 電子書 格式下載 2024