數據結構與算法(Python版)
余久久、蔡政策、虞焰興、淩勇、李昌群、唐珊、陳傑、王嬙
- 出版商: 清華大學
- 出版日期: 2025-08-01
- 售價: $359
- 語言: 簡體中文
- ISBN: 7302698856
- ISBN-13: 9787302698852
-
相關分類:
Algorithms-data-structures
下單後立即進貨 (約4週~6週)
商品描述
作者簡介
目錄大綱
目錄
第1章緒論1
1.1數據結構研究的內容1
1.1.1為什麼要學習數據結構2
1.1.2數據結構中的例子4
1.1.3數據結構研究的內容8
1.2數據結構中的基本概念8
1.2.1基本概念與術語8
1.2.2數據結構9
1.3數據類型的表示與實現12
1.3.1數據類型12
1.3.2抽象數據類型13
1.4算法與算法分析15
1.4.1算法的定義及特性15
1.4.2算法的時間復雜度16
1.4.3算法的空間復雜度20
1.5Python語言簡介21
1.5.1Python的標準數據類型21
1.5.2輸入/輸出和文件操作21
1.5.3面向對象編程22
小結24
習題25第2章線性表27
2.1線性表的基本概念27
2.1.1線性表的定義27
2.1.2線性表的抽象數據類型描述29
2.2線性表的順序存儲結構30
2.2.1線性表的順序表示30
2.2.2順序表的基本操作32
2.2.3順序表的應用案例37
2.3線性表的鏈式表示和實現39
2.3.1鏈表的存儲結構39
2.3.2單鏈表的基本操作41
2.3.3雙向鏈表57
2.3.4循環鏈表64
2.4順序表和鏈表的比較69
2.5線性表的應用——機場乘客排隊值機系統70
小結71
習題72第3章棧與隊列75
3.1棧75
3.1.1棧的基本概念75
3.1.2使用Python列表實現棧79
3.1.3棧的應用場景81
3.2隊列83
3.2.1隊列的基本概念84
3.2.2使用collections.deque實現隊列85
3.2.3優先隊列87
3.2.4隊列的應用場景89
小結91
習題92第4章串、數組與廣義表94
4.1串94
4.1.1串的基本概念94
4.1.2串的順序存儲及運算95
4.1.3串的鏈式存儲及運算97
4.1.4串的模式匹配99
4.1.5串的應用案例101
4.2數組102
4.2.1數組的基本概念102
4.2.2數組的順序存儲103
4.2.3特殊矩陣的壓縮存儲105
4.2.4數組的應用案例106
4.3廣義表108
4.3.1廣義表的基本概念108
4.3.2廣義表的存儲結構108
4.3.3廣義表的操作109
小結111
習題112第5章樹114
5.1樹和二叉樹114
5.1.1樹的定義與基本術語115
5.1.2二叉樹的定義與特點115
5.1.3樹與二叉樹的示例描述116
5.2二叉樹案例引入116
5.3二叉樹的性質和存儲結構118
5.3.1二叉樹的性質118
5.3.2二叉樹的存儲結構119
5.4遍歷二叉樹和線索二叉樹121
5.4.1遍歷二叉樹121
5.4.2線索二叉樹130
5.5樹和森林132
5.5.1樹的表示方法132
5.5.2森林和二叉樹的轉換134
5.5.3哈夫曼樹136
5.6案例分析與實現138
小結141
習題141第6章圖144
6.1圖的基本概念144
6.1.1圖的定義144
6.1.2圖的基本術語144
6.2圖的存儲結構146
6.2.1鄰接矩陣146
6.2.2鄰接表147
6.3圖的遍歷149
6.3.1深度優先遍歷149
6.3.2廣度優先遍歷150
6.4圖的最小生成樹152
6.4.1基本概念152
6.4.2Prim算法152
6.4.3Kruskal算法154
6.5最短路徑156
6.5.1基本概念156
6.5.2應用實例157
6.6拓撲排序159
6.6.1基本概念159
6.6.2拓撲排序的實現160
6.7關鍵路徑162
6.7.1基本概念162
6.7.2關鍵路徑的算法164
小結165
習題165第7章查找168
7.1查找的基本概念168
7.2線性表的查找169
7.2.1順序查找169
7.2.2折半查找170
7.2.3分塊查找172
7.3二叉樹的查找174
7.3.1二叉排序樹174
7.3.2平衡二叉樹183
7.4哈希表的查找185
7.4.1哈希表186
7.4.2哈希函數的構造方法187
7.4.3沖突處理的方法188
7.4.4哈希表查找的算法分析190
小結191
習題191第8章排序194
8.1認識排序194
8.1.1排序的基本概念194
8.1.2排序算法的評價指標195
8.2插入排序195
8.2.1直接插入排序196
8.2.2二分法插入排序197
8.2.3希爾排序199
8.3交換排序200
8.3.1冒泡排序200
8.3.2快速排序202
8.4選擇排序203
8.4.1簡單選擇排序203
8.4.2堆排序204
8.5歸並排序207
8.6基數排序208
小結210
習題212附錄A實驗215
實驗1順序表的基本操作215
實驗2鏈表的基本操作217
實驗3利用順序棧實現數制轉換220
實驗4二叉樹的建立及遞歸遍歷221
實驗5二叉樹的應用224
實驗6折半插入排序算法的實現226參考文獻230