-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
Python數(shù)據(jù)結構學習筆記 版權信息
- ISBN:9787113269999
- 條形碼:9787113269999 ; 978-7-113-26999-9
- 裝幀:80g膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
Python數(shù)據(jù)結構學習筆記 本書特色
(1)以“入門到精通”的寫作方法構建內容,讓讀者入門容易。 (2)實例教學,經典并深入。 (3)視頻講解,二維碼布局全書。 (4)售后答疑幫助讀者快速解決學習問題。
Python數(shù)據(jù)結構學習筆記 內容簡介
在計算機科學中,數(shù)據(jù)結構是一種數(shù)據(jù)組織、管理和存儲的格式;簡而言之,決定了數(shù)據(jù)順序和位置關系的便是數(shù)據(jù)結構,由此可見數(shù)據(jù)結構的重要性。本書以學習筆記的形式闡述了Python語言框架下的數(shù)據(jù)結構核心知識和應用實踐,尤其是對Python不同于其他語言的內置數(shù)據(jù)結構(線性表、隊列和棧、數(shù)、圖等)講行了重點講解,全書更多地通過實戰(zhàn)演練的形式將數(shù)據(jù)結構應用經驗融入實踐之中,旨在幫讀者透徹理解數(shù)據(jù)結構在編程實踐中的內涵,以期與算法實現(xiàn)融合,提升讀者編程內功。
Python數(shù)據(jù)結構學習筆記 目錄
1.1 數(shù)據(jù)結構 1
1.1.1 數(shù)據(jù)結構的核心技術 .1
1.1.2 數(shù)據(jù)結構的起源和發(fā)展現(xiàn)狀 .2
1.1.3 數(shù)據(jù)結構中的基本概念 .2
1.2 常用的數(shù)據(jù)結構和分類 3
1.2.1 數(shù)據(jù)結構的分類 .3
1.2.2 常用的數(shù)據(jù)結構 .6
1.3 數(shù)據(jù)類型和抽象數(shù)據(jù)類型 7
1.3.1 數(shù)據(jù)類型 .7
1.3.2 抽象數(shù)據(jù)類型 .7
第2 章 算法
2.1 算法是程序的靈魂 9
2.1.1 算法的定義 .9
2.1.2 算法的特征 .10
2.1.3 為什么說算法是程序的靈魂 .10
2.1.4 認識計算機中的算法 .11
2.2 數(shù)據(jù)結構和算法的關系 12
2.3 在計算機中表示算法的方法 13
2.3.1 用流程圖來表示算法 .13
2.3.2 用N-S 流程圖來表示算法 .14
2.3.3 用計算機語言來表示算法 .15
2.4 時間復雜度 15
2.4.1 尋找*優(yōu)算法 .16
2.4.2 常見算法的時間復雜度 .16
2.4.3 實戰(zhàn)演練——用Python 體驗時間復雜度 17
2.5 常用的算法思想 19
2.5.1 枚舉算法思想 .19
2.5.2 遞歸算法思想 .20
2.5.3 分治算法思想 .20
2.5.4 貪心算法思想 .20
2.5.5 試探法算法思想 .21
2.5.6 迭代算法 .22
第3 章 Python 內置的幾種數(shù)據(jù)結構
3.1 使用列表 23
3.1.1 列表的基本用法 .23
3.1.2 實戰(zhàn)演練——刪除列表中的重復元素并保持順序不變 .25
3.1.3 實戰(zhàn)演練——找出列表中出現(xiàn)次數(shù)*多的元素 .26
3.1.4 實戰(zhàn)演練——排序類定義的實例 .26
3.1.5 實戰(zhàn)演練——使用列表推導式 .27
3.1.6 實戰(zhàn)演練——命名切片 .28
3.2 使用元組 29
3.2.1 實戰(zhàn)演練——創(chuàng)建并訪問元組 .29
3.2.2 實戰(zhàn)演練——連接組合元組 .30
3.2.3 實戰(zhàn)演練——刪除元組 .30
3.2.4 實戰(zhàn)演練——使用內置方法操作元組 .31
3.2.5 實戰(zhàn)演練——將序列分解為單獨的變量 .31
3.2.6 實戰(zhàn)演練——將序列中的*后幾項作為歷史記錄 .33
3.2.7 實戰(zhàn)演練——實現(xiàn)優(yōu)先級隊列 .33
3.3 使用字典 35
3.3.1 實戰(zhàn)演練——創(chuàng)建并訪問字典 .36
3.3.2 實戰(zhàn)演練——添加、修改、刪除字典中的元素 .36
3.3.3 實戰(zhàn)演練——映射多個值 .38
3.3.4 實戰(zhàn)演練——使用OrderedDict 類創(chuàng)建有序字典 .39
3.3.5 實戰(zhàn)演練——獲取字典中的*大值和*小值 .40
3.3.6 實戰(zhàn)演練——獲取兩個字典中的相同鍵值對 .41
3.3.7 實戰(zhàn)演練——使用函數(shù)itemgetter() 對字典進行排序 42
3.3.8 使用字典推導式 .43
3.3.9 實戰(zhàn)演練——根據(jù)記錄進行分組 .44
3.3.10 實戰(zhàn)演練——轉換并換算數(shù)據(jù) .45
3.3.11 實戰(zhàn)演練——將多個映射合并為單個映射 .47
第4 章 線性表
4.1 線性表的定義和基本特征 49
4.1.1 線性表和線性結構 .49
4.1.2 線性表的基本操作過程 .50
4.2 順序表的基本操作 50
4.2.1 順序表的定義和操作 .50
4.2.2 實戰(zhàn)演練——建立空的順序表 .53
4.2.3 實戰(zhàn)演練——按值查找 .53
4.2.4 實戰(zhàn)演練——插入新元素 .54
4.2.5 實戰(zhàn)演練——刪除操作 .55
4.2.6 實戰(zhàn)演練——實現(xiàn)順序表的插入、檢索、刪除和反轉操作 .56
4.3 鏈表操作 59
4.3.1 什么是鏈表 .59
4.3.2 實戰(zhàn)演練——Python 中的鏈表操作 .59
4.3.3 實戰(zhàn)演練——單向鏈表 .62
4.3.4 實戰(zhàn)演練——單向循環(huán)鏈表 .70
4.3.5 實戰(zhàn)演練——雙向鏈表 .75
4.3.6 實戰(zhàn)演練——雙向循環(huán)鏈表 .78
4.3.7 實戰(zhàn)演練——在鏈表中增加比較功能 .83
4.3.8 實戰(zhàn)演練——單鏈表結構字符串 .85
4.3.9 實戰(zhàn)演練——改進后的多次匹配操作 .87
第5 章 隊列和棧
5.1 隊列 90
5.1.1 什么是隊列 .90
5.1.2 Python 內置的隊列操作方法 .91
5.1.3 實戰(zhàn)演練——基于內置模塊queue 的隊列 92
5.1.4 實戰(zhàn)演練——基于列表自定義實現(xiàn)的優(yōu)先隊列 .96
5.1.5 實戰(zhàn)演練——基于堆實現(xiàn)的優(yōu)先隊列 .98
5.1.6 實戰(zhàn)演練——雙端隊列 .100
5.1.7 實戰(zhàn)演練——銀行業(yè)務隊列簡單模擬 .101
5.2 棧 103
5.2.1 什么是棧 .103
5.2.2 實戰(zhàn)演練——入棧和出棧 .103
5.2.3 實戰(zhàn)演練——順序棧 .105
5.2.4 實戰(zhàn)演練——鏈棧 .107
5.2.5 實戰(zhàn)演練——檢查小括號是否成對 .109
第6 章 樹
6.1 樹的基礎知識 111
6.1.1 什么是樹 .111
6.1.2 樹的相關概念 .112
6.2 使用列表構建樹 113
6.2.1 實戰(zhàn)演練——實現(xiàn)一個簡單的樹 .113
6.2.2 實戰(zhàn)演練——使用列表創(chuàng)建二叉樹 .114
6.3 二叉樹 115
6.3.1 二叉樹的定義 .115
6.3.2 二叉樹的性質 .116
6.3.3 二叉樹存儲 .117
6.3.4 實戰(zhàn)演練——使用嵌套列表構建樹 .119
6.3.5 實戰(zhàn)演練——把二叉樹的任何子節(jié)點當成二叉樹進行處理 .121
6.3.6 實戰(zhàn)演練——實現(xiàn)二叉搜索樹查找操作 .122
6.3.7 實戰(zhàn)演練——實現(xiàn)二叉搜索樹的刪除操作 .128
6.3.8 實戰(zhàn)演練——遍歷二叉樹 .136
6.3.9 實戰(zhàn)演練——使用線索二叉樹 .140
6.4 堆排列和二叉堆 148
6.4.1 實戰(zhàn)演練——使用Python 內置的堆操作方法 148
6.4.2 實戰(zhàn)演練——實現(xiàn)二叉堆操作 .149
6.5 哈夫曼樹 151
6.5.1 哈夫曼樹基礎 .152
6.5.2 實戰(zhàn)演練——使用面向過程方式和面向對象方式實現(xiàn)哈夫曼樹 .154
6.5.3 實戰(zhàn)演練——實現(xiàn)哈夫曼樹的基本操作 .155
第7 章 圖
7.1 圖的起源 159
7.2 圖的相關概念 160
7.3 存儲結構 163
7.3.1 使用鄰接矩陣表示圖 .163
7.3.2 實戰(zhàn)演練——將鄰接矩陣輸出成圖 .165
7.3.3 實戰(zhàn)演練——使用鄰接表表示圖 .165
7.3.4 鄰接矩陣與鄰接表的對比 .168
7.4 圖的遍歷 169
7.4.1 深度優(yōu)先搜索 .169
7.4.2 廣度優(yōu)先搜索 .171
7.4.3 實戰(zhàn)演練——實現(xiàn)圖的深度優(yōu)先和廣度優(yōu)先 .172
7.4.4 深度優(yōu)先算法和廣度優(yōu)先算法的比較和選擇 .174
7.5 圖的連通性 175
7.5.1 無向圖連通分量 .175
7.5.2 實戰(zhàn)演練——通過二維數(shù)組建立無向圖 .176
7.5.3 實戰(zhàn)演練——根據(jù)鄰接矩陣繪制無向圖 .177
7.5.4 *小生成樹 .178
7.5.5 實戰(zhàn)演練——實現(xiàn)*小生成樹和拓撲序列 .179
7.5.6 關鍵路徑 .180
7.5.7 實戰(zhàn)演練——使用遞歸解決AOE 網絡*長路關鍵路徑的問題 .182
7.6 尋求*短路徑 184
7.6.1 求某一頂點到其他各頂點的*短路徑 .184
7.6.2 任意一對頂點間的*短路徑 .186
7.6.3 實戰(zhàn)演練——使用Dijkstra 算法計算指定一個點到其他
各頂點的路徑 .188
7.6.4 實戰(zhàn)演練——使用Floyd-Warshall 算法計算圖的*短路徑 189
7.6.5 實戰(zhàn)演練——使用Bellman-Ford 算法計算圖的*短路徑 .190
7.6.6 實戰(zhàn)演練——使用Dijkstra 算法解決加權*短路徑問題 191
7.6.7 幾種*短路徑算法的比較 .193
第8 章 數(shù)據(jù)結構的查找算法
8.1 數(shù)據(jù)結構的查找處理 195
8.1.1 查找的基本概念 .195
8.1.2 查找算法的分類 .196
8.2 順序查找 196
8.2.1 順序查找法基礎 .196
8.2.2 分析順序查找的性能 .197
8.2.3 使用Python 內置函數(shù)順序查找 197
8.2.4 實戰(zhàn)演練———遍歷有序列表 .198
8.2.5 實戰(zhàn)演練———遍歷無序列表 .198
8.2.6 實戰(zhàn)演練———查找兩個有序列表的中位數(shù) .201
8.2.7 實戰(zhàn)演練———在列表中順序查找*大值和*小值 .202
8.3 折半查找算法 202
8.3.1 折半查找法基礎 .203
8.3.2 分析折半查找法的性能 .203
8.3.3 實戰(zhàn)演練——使用折半查找算法查找指定的數(shù)據(jù) .203
8.3.4 實戰(zhàn)演練——使用遞歸折半查找和非遞歸折半查找 .204
8.3.5 實戰(zhàn)演練——比較順序查找算法和折半查找算法的效率 .206
8.4 插值查找算法 207
8.4.1 插值查找算法基礎 .207
8.4.2 分析插值查找的性能 .208
8.4.3 實戰(zhàn)演練——使用插值查找算法查找指定的數(shù)據(jù) .208
8.5 分塊查找算法 209
8.5.1 分塊查找算法基礎 .209
8.5.2 分析分塊查找算法的性能 .210
8.5.3 實戰(zhàn)演練——使用分塊查找算法在列表中查找某元素 .210
8.5.4 實戰(zhàn)演練——升級策略后的分塊查找算法 .212
8.5.5 實戰(zhàn)演練——一道算法題 .213
8.6 二叉排序樹法 216
8.6.1 二叉排序樹法基礎 .216
8.6.2 分析二叉排序樹法的性能 .216
8.6.3 實戰(zhàn)演練——實現(xiàn)二叉樹的搜索、插入、刪除、先序遍歷
和后序遍歷操作 .217
8.7 平衡查找樹法 221
8.7.1 2-3 查找樹 .221
8.7.2 平衡查找樹之紅黑樹(Red-Black Tree) 225
8.7.3 平衡二叉樹 .227
8.8 哈希查找算法 233
8.8.1 哈希查找算法的基本思想 .233
8.8.2 分析哈希查找算法的性能 .234
8.8.3 實戰(zhàn)演練——使用哈希查找算法查找數(shù)據(jù) .234
8.9 斐波那契查找算法 235
8.9.1 斐波那契查找算法基礎 .235
8.9.2 實戰(zhàn)演練——使用斐波那契查找算法查找數(shù)據(jù) .236
第9 章 數(shù)據(jù)結構的排序算法
9.1 數(shù)據(jù)結構排序的基礎知識 238
9.1.1 排序算法的定義和評價標準 .238
9.1.2 排序算法的分類 .239
9.2 使用插入排序算法 239
9.2.1 插入排序算法基礎 .239
9.2.2 直接插入排序 .240
9.2.3 實戰(zhàn)演練——使用直接插入排序算法對列表中的元素進行排序 .241
9.2.4 折半插入排序 .242
9.2.5 實戰(zhàn)演練——使用折半插入排序法查找指定數(shù)字 .243
9.2.6 實戰(zhàn)演練——使用折半插入排序 .243
9.2.7 實戰(zhàn)演練——對鏈表進行插入排序 .244
9.3 使用希爾排序算法 245
9.3.1 希爾排序算法基礎 .245
9.3.2 分析希爾排序算法的性能 .246
9.3.3 實戰(zhàn)演練——使用希爾排序算法對數(shù)據(jù)進行排序處理 .246
9.3.4 實戰(zhàn)演練——排序一個大的隨機列表 .247
9.4 冒泡排序算法 249
9.4.1 冒泡排序算法基礎 .249
9.4.2 分析冒泡排序算法的性能 .250
9.4.3 實戰(zhàn)演練——實現(xiàn)從大到小的冒泡排序 .250
9.4.4 實戰(zhàn)演練——使用冒泡排序法實現(xiàn)升序排序 .251
9.5 使用快速排序算法 252
9.5.1 快速排序算法基礎 .252
9.5.2 分析快速排序算法的性能 .253
9.5.3 實戰(zhàn)演練——使用快速排序算法排列輸入的列表 .254
9.6 選擇排序 255
9.6.1 直接選擇排序 .255
9.6.2 實戰(zhàn)演練——使用直接選擇排序法排序列表list 中的元素 256
9.6.3 樹形選擇排序 .257
9.6.4 實戰(zhàn)演練——創(chuàng)建二叉樹并實現(xiàn)完整樹形排序 .257
9.6.5 堆排序 .259
9.6.6 實戰(zhàn)演練——對9 個待排序數(shù)字實現(xiàn)完整堆排序 .260
9.7 歸并排序 263
9.7.1 歸并排序算法原理與性能 .263
9.7.2 實戰(zhàn)演練——使用歸并排序算法由小到大排序一個列表 .265
9.8 基數(shù)排序 266
9.8.1 基數(shù)排序算法原理與性能 .266
9.8.2 實戰(zhàn)演練——使用基數(shù)排序算法排列一個列表 .267
Python數(shù)據(jù)結構學習筆記 作者簡介
張清云,浪潮集團企業(yè)云深圳研發(fā)中心高級工程師,精通Linux、Unix平臺開發(fā),12年C++開發(fā)經驗,6年Python開發(fā)經驗,長期從事與ERP開發(fā)、大數(shù)據(jù)開發(fā)和數(shù)據(jù)分析工作。參與研發(fā)了浪潮云海OS系統(tǒng),這是中國自主研發(fā)的云數(shù)據(jù)中心操作系統(tǒng),深度融合OpenStack,是集數(shù)據(jù)分析、開放、融合、安全的云數(shù)據(jù)中心操作系統(tǒng),支持廣泛的異構資源管理和跨云整合。
- >
月亮與六便士
- >
小考拉的故事-套裝共3冊
- >
史學評論
- >
李白與唐代文化
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
煙與鏡
- >
朝聞道
- >
伯納黛特,你要去哪(2021新版)