數據結構與算法(Python版)

余久久、蔡政策、虞焰興、淩勇、李昌群、唐珊、陳傑、王嬙

  • 出版商: 清華大學
  • 出版日期: 2025-08-01
  • 售價: $359
  • 語言: 簡體中文
  • ISBN: 7302698856
  • ISBN-13: 9787302698852
  • 相關分類: Algorithms-data-structures
  • 下單後立即進貨 (約4週~6週)

  • 數據結構與算法(Python版)-preview-1
  • 數據結構與算法(Python版)-preview-2
  • 數據結構與算法(Python版)-preview-3
  • 數據結構與算法(Python版)-preview-4
  • 數據結構與算法(Python版)-preview-5
  • 數據結構與算法(Python版)-preview-6
  • 數據結構與算法(Python版)-preview-7
數據結構與算法(Python版)-preview-1

商品描述

"本書緊緊圍繞《高等學校計算機專業核心課程教學實施方案》,並參照安徽省高等學校計算機教育研究會課程建設專業委員會提出的地方應用型本科“數據結構”課程教學大綱編寫而成。全書共分為8章,第1章為緒論,主要介紹數據結構和算法的基本概念。第2~4章介紹線性數據結構的類型、特點及其操作算法等,其中,第2章具體介紹普通的線性表,第3章具體介紹棧與隊列這樣“操作受限”的線性表,第4章則具體介紹一些特殊的線性表(串)與推廣的線性表(數組、廣義表)。第5、6章介紹樹與圖,主要介紹具有非線性數據結構的樹、圖等較為復雜的數據結構特征及操作算法。第7、8章介紹查找與排序,主要介紹各種常見的查找與排序算法,以及優化存儲結構的思想等。為了起到銜接課堂教學、方便實驗教學的作用,本書附錄給出了6個基礎性的數據結構實驗題,並配有完整的Python源代碼,能夠在Python IDLE環境下順利運行,供學生上機調試參考。 本書難易適度,結構清晰,圖文並茂,文字表達通俗易懂、實用性強。註重理論和實踐的結合,強調Python程序算法設計素養與教育,可幫助讀者進一步掌握數據結構的基本知識和技能,學會運用數據結構知識解決實際問題。 本書適合作為地方應用型本科高校計算機及相關專業“數據結構”課程的教材、計算機類專業碩士研究生入學考試“數據結構”課程的考研輔導書,也可作為高職院校軟件技術類專業學生的課外學習輔導教材。還可以作為參加計算機程序算法設計相關學科競賽的培訓教材,以及對數據結構與算法知識感興趣的各類企業IT人員與計算機愛好者的參考書。 "

作者簡介

余久久,男,碩士研究生,教授。現任安徽三聯學院計算機工程學院軟件工程教研室主任,本科軟件工程專業負責人,安慶師範大學碩士研究生導師。研究方向:現代軟件工程,敏捷軟件測試,現代教育技術,高校信息化資源建設等。

目錄大綱

目錄

第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