







0
34Rust数据结构的性能62
341标量类型和复合类型62
342集合类型63
35小结64
第4章基础数据结构65
41线性数据结构65
42栈66
421栈的抽象数据类型67
422Rust实现栈68
423括号匹配71
424进制转换75
425前缀、中缀和后缀表达式78
426将中缀表达式转换为前
缀和后缀表达式80
43队列85
431队列的抽象数据类型86
432Rust实现队列87
433烫手山芋游戏90
44双端队列92
441双端队列的抽象数据类型92
442Rust实现双端队列93
443回文检测97
45链表98
451链表的抽象数据类型99
452Rust实现链表100
453链表栈104
46Vec107
461Vec的抽象数据类型107
462Rust实现Vec108
47小结114
第5章递归115
51什么是递归115
511递归三定律117
512到任意进制的转换118
513汉诺塔120
52尾递归121
53动态规划123
531什么是动态规划126
532动态规划与递归129
54小结129
第6章查找131
61什么是查找131
62顺序查找132
621Rust实现顺序查找132
622顺序查找的复杂度133
63二分查找135
631Rust实现二分查找135
632二分查找的复杂度138
633内插查找138
634指数查找140
64哈希查找141
641哈希函数142
642解决哈希冲突144
643Rust实现HashMap146
644HashMap的复杂度153
65小结153
第7章排序154
71什么是排序154
72冒泡排序155
73快速排序160
74插入排序164
75希尔排序166
76归并排序167
77选择排序170
78堆排序171
79桶排序174
710计数排序177
711基数排序179
712蒂姆排序181
713小结193
第8章树195
81什么是树195
811树的定义198
812树的表示199
813分析树203
814树的遍历204
82二叉堆211
821二叉堆的抽象数据类型212
822Rust实现二叉堆212
823二叉堆分析219
83二叉查找树219
831二叉查找树的抽象数
据类型219
832Rust实现二叉查找树220
833二叉查找树分析231
84平衡二叉树232
841AVL平衡二叉树232
842Rust实现平衡二叉树34
843平衡二叉树分析245
85小结245
第9章图246
91什么是图246
92图的存储形式247
921邻接矩阵248
922邻接表248
93图的抽象数据类型249
94图的实现249
95广度优先搜索258
951实现广度优先搜索258
952广度优先搜索分析266
953骑士之旅问题267
96深度优先搜索273
961实现深度优先搜索274
962深度优先搜索分析277
963拓扑排序277
97强连通分量284
971BFS强连通分量算法286
972DFS强连通分量算法290
98最短路径问题292
981Dijkstra算法293
982实现Dijkstra算法293
983Dijkstra算法分析296
99小结296
第10章实战297
101编辑距离297
1011汉明距离297
1012莱文斯坦距离299
102字典树304
103过滤器306
1031布隆过滤器307
1032布谷鸟过滤器310
104LRU缓存淘汰算法315
105一致性哈希算法320
106Base58编码324
107区块链330
1071区块链及比特币原理330
1072基础区块链331
108小结336
参考文献337
编程语言与程序设计
Python编程 从入门到实践 第3版(图灵出品)
编程语言与程序设计
Hello算法(图灵出品)
编程语言与程序设计
C++ Primer Plus 第6版 中文版(异步图书出品)
编程语言与程序设计
C++ Primer(中文版 第5版)(博文视点出品)
编程语言与程序设计
高效C/C++调试