數(shù)據(jù)結(jié)構(gòu)與算法 Rust語言描述
定 價:109.8 元
- 作者:謝波
- 出版時間:2023/7/1
- ISBN:9787115611680
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.12
- 頁碼:338
- 紙張:
- 版次:01
- 開本:16開
這是一本基于 Rust 語言講解數(shù)據(jù)結(jié)構(gòu)及其實現(xiàn)方法的書。全書先介紹 Rust 語言的基礎(chǔ)知識以及計算機科學(xué)和算法分析的概念,然后介紹簡單數(shù)據(jù)結(jié)構(gòu)和算法的設(shè)計與實現(xiàn),接著介紹較復(fù)雜的樹和圖數(shù)據(jù)結(jié)構(gòu),最后將這些知識應(yīng)用于實戰(zhàn)項目以解決實際問題。
本書適合程序設(shè)計愛好者、專業(yè)程序員以及對 Rust 語言感興趣的讀者閱讀。
1. 基于Rust語言編寫的數(shù)據(jù)結(jié)構(gòu)與算法圖書,深入淺出介紹Rust語言的基礎(chǔ)知識,帶領(lǐng)讀者逐步理解并實現(xiàn)簡單到復(fù)雜的數(shù)據(jù)結(jié)構(gòu)及其算法。
2. Rust社區(qū)創(chuàng)辦人張漢東、唐剛聯(lián)袂推薦,不僅涵蓋數(shù)據(jù)結(jié)構(gòu)及其實現(xiàn)方法,還引入了計算機科學(xué)和算法分析的概念,為讀者提供了一個更加全面的學(xué)習(xí)體驗。
3. 異步社區(qū)提供配套資源(源代碼),輔以實例闡釋重要知識點,是一份非常優(yōu)質(zhì)的計算機科學(xué)入門指南。
4. 以實用性為導(dǎo)向,適合技術(shù)人員快速上手并熟練掌握數(shù)據(jù)結(jié)構(gòu)和算法的核心知識。通過本書的學(xué)習(xí),讀者可以更好地了解Rust語言在不同場景下的應(yīng)用,提高自己的編程能力。
謝波(Shieber) 畢業(yè)于電子科技大學(xué),Rust 語言愛好者,擅長用 Rust開發(fā)各種實用工具和系統(tǒng),長期致力于 Rust 語言的推廣。現(xiàn)就職于某互聯(lián)網(wǎng)公司,從事結(jié)算及大數(shù)據(jù)系統(tǒng)的相關(guān)研發(fā)工作。愛好編程、閱讀、醫(yī)學(xué)、語言和美食。
第 1 章 Rust 基礎(chǔ) 1
11 安裝 Rust 及其工具鏈 1
12 Rust 基礎(chǔ)知識 2
121 Rust 語言歷史 2
122 關(guān)鍵字、注釋、命名風(fēng)格 4
123 常量、變量、數(shù)據(jù)類型 6
124 語句、表達式、運算符、流程控制 10
125 函數(shù)、程序結(jié)構(gòu) 13
126 所有權(quán)、作用域規(guī)則、生命周期 15
127 泛型、trait 20
128 枚舉及模式匹配 22
129 函數(shù)式編程 24
1210 智能指針 27
1211 異常處理 34
1212 宏系統(tǒng) 36
1213 代碼組織及包依賴關(guān)系 37
13 項目:Rust 密碼生成器 39
14 小結(jié) 46
第 2 章 計算機科學(xué) 47
21 什么是計算機科學(xué) 47
22 什么是編程 49
23 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu) 49
24 為什么要學(xué)習(xí)算法 50
25 小結(jié) 51
第 3 章 算法分析 52
31 什么是算法分析 52
32 大 O 分析法 55
33 亂序字符串檢查 58
331 窮舉法 58
332 檢查法 58
333 排序和比較法 60
334 計數(shù)和比較法 60
34 Rust 數(shù)據(jù)結(jié)構(gòu)的性能 62
341 標量類型和復(fù)合類型 62
342 集合類型 63
35 小結(jié) 64
第 4 章 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu) 65
41 線性數(shù)據(jù)結(jié)構(gòu) 65
42 棧 66
421 棧的抽象數(shù)據(jù)類型 67
422 Rust 實現(xiàn)棧 68
423 括號匹配 71
424 進制轉(zhuǎn)換 75
425 前綴、中綴和后綴表達式 78
426 將中綴表達式轉(zhuǎn)換為前
綴和后綴表達式 80
43 隊列 85
431 隊列的抽象數(shù)據(jù)類型 86
432 Rust 實現(xiàn)隊列 87
433 燙手山芋游戲 90
44 雙端隊列 92
441 雙端隊列的抽象數(shù)據(jù)類型 92
442 Rust 實現(xiàn)雙端隊列 93
443 回文檢測 97
45 鏈表 98
451 鏈表的抽象數(shù)據(jù)類型 99
452 Rust 實現(xiàn)鏈表 100
453 鏈表棧 104
46 Vec 107
461 Vec 的抽象數(shù)據(jù)類型 107
462 Rust 實現(xiàn) Vec 108
47 小結(jié) 114
第 5 章 遞歸 115
51 什么是遞歸 115
511 遞歸三定律 117
512 到任意進制的轉(zhuǎn)換 118
513 漢諾塔 120
52 尾遞歸 121
53 動態(tài)規(guī)劃 123
531 什么是動態(tài)規(guī)劃 126
532 動態(tài)規(guī)劃與遞歸 129
54 小結(jié) 129
第 6 章 查找 131
61 什么是查找 131
62 順序查找 132
621 Rust 實現(xiàn)順序查找 132
622 順序查找的復(fù)雜度 133
63 二分查找 135
631 Rust 實現(xiàn)二分查找 135
632 二分查找的復(fù)雜度 138
633 內(nèi)插查找 138
634 指數(shù)查找 140
64 哈希查找 141
641 哈希函數(shù) 142
642 解決哈希沖突 144
643 Rust 實現(xiàn) HashMap 146
644 HashMap 的復(fù)雜度 153
65 小結(jié) 153
第 7 章 排序 154
71 什么是排序 154
72 冒泡排序 155
73 快速排序 160
74 插入排序 164
75 希爾排序 166
76 歸并排序 167
77 選擇排序 170
78 堆排序 171
79 桶排序 174
710 計數(shù)排序 177
711 基數(shù)排序 179
712 蒂姆排序 181
713 小結(jié) 193
第 8 章 樹 195
81 什么是樹 195
811 樹的定義 198
812 樹的表示 199
813 分析樹 203
814 樹的遍歷 204
82 二叉堆 211
821 二叉堆的抽象數(shù)據(jù)類型 212
822 Rust 實現(xiàn)二叉堆 212
823 二叉堆分析 219
83 二叉查找樹 219
831 二叉查找樹的抽象數(shù)
據(jù)類型 219
832 Rust 實現(xiàn)二叉查找樹 220
833 二叉查找樹分析 231
84 平衡二叉樹 232
841 AVL 平衡二叉樹 232
842 Rust 實現(xiàn)平衡二叉樹 34
843 平衡二叉樹分析 245
85 小結(jié) 245
第 9 章 圖 246
91 什么是圖 246
92 圖的存儲形式 247
921 鄰接矩陣 248
922 鄰接表 248
93 圖的抽象數(shù)據(jù)類型 249
94 圖的實現(xiàn) 249
95 廣度優(yōu)先搜索 258
951 實現(xiàn)廣度優(yōu)先搜索 258
952 廣度優(yōu)先搜索分析 266
953 騎士之旅問題 267
96 深度優(yōu)先搜索 273
961 實現(xiàn)深度優(yōu)先搜索 274
962 深度優(yōu)先搜索分析 277
963 拓撲排序 277
97 強連通分量 284
971 BFS 強連通分量算法 286
972 DFS 強連通分量算法 290
98 最短路徑問題 292
981 Dijkstra 算法 293
982 實現(xiàn) Dijkstra 算法 293
983 Dijkstra 算法分析 296
99 小結(jié) 296
第 10 章 實戰(zhàn) 297
101 編輯距離 297
1011 漢明距離 297
1012 萊文斯坦距離 299
102 字典樹 304
103 過濾器 306
1031 布隆過濾器 307
1032 布谷鳥過濾器 310
104 LRU 緩存淘汰算法 315
105 一致性哈希算法 320
106 Base58 編碼 324
107 區(qū)塊鏈 330
1071 區(qū)塊鏈及比特幣原理 330
1072 基礎(chǔ)區(qū)塊鏈 331
108 小結(jié) 336
參考文獻 337