數據結構(Python+Java)(微課版)
蔣理,魏瑾,崔松健
- 出版商: 人民郵電
- 出版日期: 2024-04-01
- 售價: $299
- 語言: 簡體中文
- 頁數: 150
- ISBN: 7115635536
- ISBN-13: 9787115635532
-
相關分類:
Algorithms-data-structures
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書在內容上著重闡述計算機中存儲、組織數據的方式與計算機程序解決問題的步驟,同時對數據結構與算法中的典型案例進行講解,在程序實現中使用Java與Python兩種語言對照表述。本書共8章,第1章是數據結構與算法概論,主要介紹數據結構和算法的基本概念;第2、3章是線性表與棧和隊列,這部分介紹簡單的數據結構類型及操作算法;第4章是遞歸,這是數據結構中重要的操作算法;第5、6章是樹與圖,這部分介紹較為復雜的數據結構及操作算法;第7、8章是排序與查找,這部分主要介紹各種常見算法、優化存儲結構的思想。
本書可作為應用型本科院校和職業院校計算機相關專業的教材,也可作為各類計算機培訓機構的教材。
作者簡介
蔣理,男,漢族,1982年出生,江蘇南京人,工學碩士,南京信息職業技術學院講師。主要研究方向:大數據分析與可視化。長期從事軟件技術專業教學與研究工作,參與完成4項教學研究項目,主持與參與完成課程建設2項,曾在省級教學能力比賽中獲二等獎。主持與參與完成5項軟件系統研發項目,在省級以上期刊發表論文11篇,申請軟件著作權7項。指導學生在“中國軟件杯”等專業比賽中數次獲獎,還曾指導學生在“挑戰杯”,“互聯網+”等創新創業類比賽中獲獎。
目錄大綱
第 1章 數據結構與算法概論 1
1.1 問題求解 1
1.1.1 計算機解決問題的步驟 1
1.1.2 非數值數學模型 3
1.2 數據結構概述 5
1.2.1 數據結構的相關概念 5
1.2.2 抽象數據類型 7
1.3 算法概述 9
1.3.1 算法及其特性 9
1.3.2 算法設計的要求 10
1.3.3 算法描述方法 10
1.3.4 算法評價 10
本章小結 13
本章習題 13
第 2章 線性表 14
2.1 線性表的概念 14
2.2 線性表的順序存儲結構 15
2.2.1 順序表的概念 15
2.2.2 順序表的操作 15
2.3 線性表的鏈式存儲結構 18
2.3.1 鏈表的概念 18
2.3.2 單向鏈表 19
2.3.3 雙向鏈表 23
2.4 線性表特點與比較 27
2.4.1 線性表的特點 27
2.4.2 順序表與鏈表的比較 27
2.4.3 單向鏈表與雙向鏈表的比較 28
2.5 線性表的應用 28
2.5.1 多項式的合並 28
2.5.2 稀疏矩陣的表示 30
2.5.3 約瑟夫問題 32
本章小結 33
本章習題 34
第3章 棧和隊列 35
3.1 棧 35
3.1.1 棧的定義與基本操作 35
3.1.2 棧的順序存儲結構與實現 36
3.1.3 棧的鏈式存儲結構與實現 39
3.1.4 順序棧和鏈棧的比較 41
3.1.5 棧的應用案例 41
3.2 隊列 44
3.2.1 隊列的定義與基本操作 44
3.2.2 隊列的順序存儲結構與實現 45
3.2.3 隊列的鏈式存儲結構與實現 49
3.2.4 循環隊列與鏈隊列的比較 51
3.2.5 隊列的應用案例 51
本章小結 55
本章習題 56
第4章 遞歸 57
4.1 遞歸定義 57
4.2 遞歸算法設計 57
4.3 消除遞歸 60
4.3.1 直接轉換法 60
4.3.2 間接轉換法 61
4.4 回溯法 62
4.5 遞歸的評價 65
本章小結 66
本章習題 66
第5章 樹 68
5.1 樹的概念 68
5.1.1 樹的定義 68
5.1.2 樹的相關概念 68
5.1.3 樹的表示 69
5.2 二叉樹 70
5.2.1 二叉樹的概念 70
5.2.2 二叉樹的性質 72
5.2.3 二叉樹的存儲 72
5.2.4 二叉樹的遍歷 74
5.3 樹、森林與二叉樹 76
5.3.1 樹的存儲 76
5.3.2 樹與二叉樹的轉換 78
5.3.3 森林與二叉樹的轉換 79
5.3.4 樹的遍歷 80
5.4 哈夫曼樹 81
5.4.1 哈夫曼樹的相關概念 81
5.4.2 哈夫曼算法 84
5.4.3 哈夫曼編碼 85
5.5 堆 86
5.5.1 堆的概念 86
5.5.2 堆的操作 87
5.5.3 堆的算法分析 92
本章小結 93
本章習題 93
第6章 圖 95
6.1 圖的概念 95
6.1.1 圖的相關術語 95
6.1.2 圖的存儲結構 97
6.2 圖的遍歷 101
6.2.1 深度優先遍歷 101
6.2.2 廣度優先遍歷 102
6.3 圖的應用 104
6.3.1 最小生成樹 104
6.3.2 拓撲排序問題 106
6.3.3 關鍵路徑問題 109
6.3.4 最短路徑問題 110
本章小結 118
本章習題 118
第7章 排序 120
7.1 排序的概念 120
7.2 插入排序 120
7.2.1 直接插入排序 120
7.2.2 希爾排序 122
7.3 交換排序 122
7.3.1 冒泡排序 122
7.3.2 快速排序 124
7.4 選擇排序 125
7.4.1 簡單選擇排序 125
7.4.2 堆排序 127
7.5 歸並排序 130
7.6 排序算法比較 131
本章小結 132
本章習題 132
第8章 查找 133
8.1 查找的概念 133
8.2 線性表查找 134
8.2.1 順序查找 134
8.2.2 二分查找 135
8.2.3 分塊查找 137
8.3 樹表查找 138
8.3.1 二叉排序樹的節點 139
8.3.2 二叉排序樹的查找 139
8.3.3 二叉排序樹的插入 140
8.3.4 二叉排序樹的構造 141
8.3.5 二叉排序樹的刪除 143
8.4 散列表查找 144
8.4.1 散列查找 145
8.4.2 散列函數 145
8.4.3 沖突處理 147
8.4.4 查找性能分析 149
本章小結 150
本章習題 150

