發表於2024-11-27
數據結構是計算機為瞭高效地利用資源而組織數據的一種方式。數據結構和算法是解決一切編程問題的基礎。
本書首先介紹瞭JavaScript語言的基礎知識,接著討論瞭數組、棧、隊列和鏈錶等重要的數據結構,隨後分析瞭集閤、字典和散列錶的工作原理,接下來闡述瞭什麼是樹以及如何使用二叉樹和二叉搜索樹,然後介紹瞭圖、DFS和BFS算法,以及各種排序(冒泡排序、選擇排序、插入排序、歸並排序、快速排序等)和搜索(順序搜索、二分搜索)算法,zui後介紹瞭動態規劃和貪心算法等高ji算法。
相較上一版,這一版新增瞭ES6和ES7的新功能介紹,補充瞭ES6的當前實現。同時拓展瞭對樹、圖、排序算法、動態規劃和貪心算法的討論,增加瞭AVL樹、Dijkstra算法、Floyd-Warshall算法、Prim算法、Kruskal算法、堆排序、分布式排序、背包問題、矩陣鏈相乘等內容。此外還概述瞭函數式編程、NP完全理論。
如果你是計算機科學專業的學生,或是剛剛開啓職業生涯的技術人員,想探索JavaScript的zui佳能力,這本書一定適閤你。
第1章JavaScript簡介1
1.1JavaScript數據結構與算法1
1.2環境搭建2
1.2.1最簡單的環境搭建2
1.2.2使用Web服務器(XAMPP)4
1.2.3使用Node.js搭建Web服務器5
1.3JavaScript基礎6
1.3.1變量7
1.3.2操作符9
1.3.3真值和假值11
1.3.4相等操作符(==和===)12
1.4控製結構14
1.4.1條件語句14
1.4.2循環15
1.5函數16
1.6JavaScript麵嚮對象編程17
1.7調試工具18
1.8ECMAScript概述19
1.9ECMAScript6的功能21
1.9.1用let替代var聲明變量21
1.9.2常量23
1.9.3模闆字麵量23
1.9.4箭頭函數24
1.9.5函數的參數默認值24
1.9.6聲明展開和剩餘參數25
1.9.7使用類進行麵嚮對象編程27
1.10ECMAScript7的功能29
1.11小結30
第2章數組31
2.1為什麼用數組31
2.2創建和初始化數組32
2.3添加元素33
2.3.1使用push方法33
2.3.2插入元素到數組首位34
2.4刪除元素34
2.5在任意位置添加或刪除元素36
2.6二維和多維數組36
2.6.1迭代二維數組的元素37
2.6.2多維數組38
2.7JavaScript的數組方法參考39
2.7.1數組閤並39
2.7.2迭代器函數40
2.7.3ECMAScript6和數組的新功能42
2.7.4排序元素46
2.7.5搜索48
2.7.6輸齣數組為字符串49
2.8類型數組50
2.9小結51
第3章棧52
3.1棧數據結構52
3.1.1創建棧53
3.1.2嚮棧添加元素53
3.1.3從棧移除元素53
3.1.4查看棧頂元素54
3.1.5檢查棧是否為空54
3.1.6清空和打印棧元素54
3.2ECMAScript6和Stack類56
3.3用棧解決問題59
3.4小結61
第4章隊列62
4.1隊列數據結構62
4.2創建隊列63
4.2.1嚮隊列添加元素63
4.2.2從隊列移除元素63
4.2.3查看隊列頭元素64
4.2.4檢查隊列是否為空64
4.2.5打印隊列元素64
4.3用ECMAScript6語法實現的Queue類66
4.4優先隊列66
4.5循環隊列——擊鼓傳花68
4.6JavaScript任務隊列70
4.7小結70
第5章鏈錶71
5.1鏈錶數據結構71
5.2創建鏈錶72
5.2.1嚮鏈錶尾部追加元素73
5.2.2從鏈錶中移除元素75
5.2.3在任意位置插入元素77
5.2.4實現其他方法79
5.3雙嚮鏈錶82
5.3.1在任意位置插入新元素82
5.3.2從任意位置移除元素85
5.4循環鏈錶87
5.5小結88
第6章集閤89
6.1構建數據集閤89
6.2創建集閤89
6.2.1has(value)方法90
6.2.2add方法91
6.2.3remove和clear方法91
6.2.4size方法92
6.2.5values方法93
6.2.6使用Set類93
6.3集閤操作94
6.3.1並集94
6.3.2交集95
6.3.3差集97
6.3.4子集98
6.4ES6——Set類99
6.5小結101
第7章字典和散列錶102
7.1字典102
7.1.1創建字典102
7.1.2使用Dictionary類105
7.2散列錶106
7.2.1創建散列錶106
7.2.2使用HashTable類108
7.2.3散列錶和散列集閤109
7.2.4處理散列錶中的衝突109
7.2.5創建更好的散列函數117
7.3ES6——Map類118
7.4ES6——WeakMap類和WeakSet類118
7.5小結119
第8章樹120
8.1樹數據結構120
8.2樹的相關術語121
8.3二叉樹和二叉搜索樹121
8.3.1創建BinarySearchTree類122
8.3.2嚮樹中插入一個鍵123
8.4樹的遍曆126
8.4.1中序遍曆126
8.4.2先序遍曆127
8.4.3後序遍曆128
8.5搜索樹中的值129
8.5.1搜索最小值和最大值130
8.5.2搜索一個特定的值131
8.5.3移除一個節點133
8.6自平衡樹137
8.6.1Adelson-Velskii-Landi樹(AVL樹)137
8.6.2更多關於二叉樹的知識143
8.7小結143
第9章圖144
9.1圖的相關術語144
9.2圖的錶示146
9.2.1鄰接矩陣146
9.2.2鄰接錶147
9.2.3關聯矩陣148
9.3創建Graph類148
9.4圖的遍曆150
9.4.1廣度優先搜索151
9.4.2深度優先搜索156
9.5最短路徑算法162
9.5.1Dijkstra算法163
9.5.2Floyd-Warshall算法165
9.6最小生成樹166
9.6.1Prim算法166
9.6.2Kruskal算法168
9.7小結169
第10章排序和搜索算法170
10.1排序算法170
10.1.1冒泡排序171
10.1.2選擇排序174
10.1.3插入排序175
10.1.4歸並排序176
10.1.5快速排序179
10.1.6堆排序183
10.1.7計數排序、桶排序和基數排序(分布式排序)186
10.2搜索算法187
10.2.1順序搜索187
10.2.2二分搜索187
10.3小結189
第11章算法模式190
11.1遞歸190
11.1.1JavaScript調用棧大小的限製191
11.1.2斐波那契數列191
11.2動態規劃193
11.2.1最少硬幣找零問題194
11.2.2背包問題196
11.2.3最長公共子序列198
11.2.4矩陣鏈相乘200
11.3貪心算法202
11.3.1最少硬幣找零問題203
11.3.2分數背包問題204
11.4函數式編程簡介205
11.4.1函數式編程與命令式編程205
11.4.2ES2015和函數式編程206
11.4.3JavaScript函數式工具箱——
map、filter和reduce207
11.4.4JavaScript函數式類庫和數據結構209
11.5小結209
第12章算法復雜度210
12.1大O錶示法210
12.1.1理解大O錶示法210
12.1.2時間復雜度比較212
12.1.3NP完全理論概述214
12.2用算法娛樂身心216
12.3小結217
學習JavaScript數據結構與算法 第2版 下載 mobi pdf epub txt 電子書 格式 2024
學習JavaScript數據結構與算法 第2版 下載 mobi epub pdf 電子書剛收到,還沒看,到時再追評
評分很好,實用
評分講的內容還是比較新的,ES5-7還是要結閤阮一峰那本書來看,總體來說還不錯
評分嗯嗯,挺滿意的,京東一如既往的值得信賴
評分不錯不錯,看瞭一點點,是正版的,
評分還行吧,非計算機專業的值得一看,不過覺得很薄,計算機專業的就算瞭,
評分物流很快
評分好好學習,天天嚮上
評分物流塊,質量挺好
學習JavaScript數據結構與算法 第2版 mobi epub pdf txt 電子書 格式下載 2024