重磅推荐
【产品特色】


【编辑推荐】

1. 基于Rust语言编写的数据结构与算法图书,深入浅出介绍Rust语言的基础知识,带领读者逐步理解并实现简单到复杂的数据结构及其算法。

2. Rust社区创办人张汉东、唐刚联袂推荐,不仅涵盖数据结构及其实现方法,还引入了计算机科学和算法分析的概念,为读者提供了一个更加全面的学习体验。

3. 异步社区提供配套资源(源代码),辅以实例阐释重要知识点,是一份非常优质的计算机科学入门指南。

4. 以实用性为导向,适合技术人员快速上手并熟练掌握数据结构和算法的核心知识。通过本书的学习,读者可以更好地了解Rust语言在不同场景下的应用,提高自己的编程能力。


【内容简介】

这是一本基于 Rust 语言讲解数据结构及其实现方法的书。全书先介绍 Rust 语言的基础知识以及计算机科学和算法分析的概念,然后介绍简单数据结构和算法的设计与实现,接着介绍较复杂的树和图数据结构,后将这些知识应用于实战项目以解决实际问题。

本书适合程序设计爱好者、专业程序员以及对 Rust 语言感兴趣的读者阅读。


【作者简介】

谢波(Shieber) 毕业于电子科技大学,Rust 语言爱好者,擅长用 Rust开发各种实用工具和系统,长期致力于 Rust 语言的推广。现就职于某互联网公司,从事结算及大数据系统的相关研发工作。爱好编程、阅读、医学、语言和美食。


【目录】

第 1 章 Rust 基础 1

11 安装 Rust 及其工具链 1

12 Rust 基础知识 2

121 Rust 语言历史 2

122 关键字、注释、命名风格 4

123 常量、变量、数据类型 6

124 语句、表达式、运算符、流程控制 10

125 函数、程序结构 13

126 所有权、作用域规则、生命周期 15

127 泛型、trait 20

128 枚举及模式匹配 22

129 函数式编程 24

1210 智能指针 27

1211 异常处理 34

1212 宏系统 36

1213 代码组织及包依赖关系 37

13 项目:Rust 密码生成器 39

14 小结 46

第 2 章 计算机科学 47

21 什么是计算机科学 47

22 什么是编程 49

23 为什么要学习数据结构 49

24 为什么要学习算法 50

25 小结 51

第 3 章 算法分析 52

31 什么是算法分析 52

32 大 O 分析法 55

33 乱序字符串检查 58

331 穷举法 58

332 检查法 58

333 排序和比较法 60

334 计数和比较法 60

34 Rust 数据结构的性能 62

341 标量类型和复合类型 62

342 集合类型 63

35 小结 64

第 4 章 基础数据结构 65

41 线性数据结构 65

42 栈 66

421 栈的抽象数据类型 67

422 Rust 实现栈 68

423 括号匹配 71

424 进制转换 75

425 前缀、中缀和后缀表达式 78

426 将中缀表达式转换为前

缀和后缀表达式 80

43 队列 85

431 队列的抽象数据类型 86

432 Rust 实现队列 87

433 烫手山芋游戏 90

44 双端队列 92

441 双端队列的抽象数据类型 92

442 Rust 实现双端队列 93

443 回文检测 97

45 链表 98

451 链表的抽象数据类型 99

452 Rust 实现链表 100

453 链表栈 104

46 Vec 107

461 Vec 的抽象数据类型 107

462 Rust 实现 Vec 108

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

621 Rust 实现顺序查找 132

622 顺序查找的复杂度 133

63 二分查找 135

631 Rust 实现二分查找 135

632 二分查找的复杂度 138

633 内插查找 138

634 指数查找 140

64 哈希查找 141

641 哈希函数 142

642 解决哈希冲突 144

643 Rust 实现 HashMap 146

644 HashMap 的复杂度 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

822 Rust 实现二叉堆 212

823 二叉堆分析 219

83 二叉查找树 219

831 二叉查找树的抽象数

据类型 219

832 Rust 实现二叉查找树 220

833 二叉查找树分析 231

84 平衡二叉树 232

841 AVL 平衡二叉树 232

842 Rust 实现平衡二叉树 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

971 BFS 强连通分量算法 286

972 DFS 强连通分量算法 290

98 短路径问题 292

981 Dijkstra 算法 293

982 实现 Dijkstra 算法 293

983 Dijkstra 算法分析 296

99 小结 296

第 10 章 实战 297

101 编辑距离 297

1011 汉明距离 297

1012 莱文斯坦距离 299

102 字典树 304

103 过滤器 306

1031 布隆过滤器 307

1032 布谷鸟过滤器 310

104 LRU 缓存淘汰算法 315

105 一致性哈希算法 320

106 Base58 编码 324

107 区块链 330

1071 区块链及比特币原理 330

1072 基础区块链 331

108 小结 336

参考文献 337


返回顶部