logo
0
1
Login
mymy20220326<mymy20220326@outlook.com>
2025_02_03_0310-wmtag_memo_增加_todo_条目

人民邮电出版社 京东自营官方旗舰店 购买谢波老师专著的链接地址

img

编辑推荐

适读人群 :程序设计爱好者、专业程序员以及对 Rust 语言感兴趣的读者

  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

简介 [En]

一本 Rust 书籍,有简体和繁体版(英文版和日文版正在撰写中)。内容包括算法分析,基本数据结构和算法,外加一些实战。共有九章,其目录如下。

  • 第一章:计算机科学
    • 计算机科学
    • Rust 回顾及学习资源
  • 第二章:算法分析
    • 性能分析:大 O 分析法
  • 第三章:基本数据结构
    • 栈、队列、双端队列、链表、Vec
  • 第四章:递归
    • 递归三定律、尾递归、动态规划
  • 第五章:查找
    • 顺序查找、二分查找、哈希查找
  • 第六章:排序
    • 十大排序算法
  • 第七章:树
    • 二叉树、二叉堆、二叉查找树、平衡二叉树
  • 第八章:图
    • 图的表示、广度优先、深度优先、最短路径
  • 第九章:实战
    • 编辑距离、字典树、过滤器、缓存淘汰
    • 一致性哈希、Base58编码、区块链

代码

所有代码按照章节保存在 code/

code_statistics

收藏数

star

更新日志

  • 2022-05-15 添加新目录 publication
  • 2022-02-27 更换书籍封面
  • 2022-02-15 添加收藏数变化图
  • 2022-02-12 添加代码统计信息
  • 2022-02-09 修复单词拼写错误、解决 usize 减法溢出 panic
  • 2022-02-06 更改代码字体为等宽字体:Source Code Pro
  • 2022-02-02 更新到 Rust 1.58 版
  • 2022-01-31 上传代码及最终文稿
  • 2021-04-24 上传初始文稿

ToDo 列表

  • 加入类似11_init_this.sh的初始化脚本
  • 增加类似linux_shell的club.cloudstudio.net勋章分享空间的自动更新机制
  • 在教程中增加安装codegeex,marscode等vscode的可选步骤
  • 在preview.yml中增加_费米学习法_通过输出带动输入_通过在b站讲解给其他人听来提升自己的学习效果
  • 尝试把部分的rust算法_用百度comate用utf8的中文来命名函数名称与函数变量
  • 把谢波老师的图书pdf文件转换为markdown格式
  • 使用aippt根据谢波老师的docx,pdf自动生成pptx文件,并切割为图片,并再次保存为演示片的pdf文件格式
  • 在不污染谢波老师的原有代码的情况下,用comate改写现有的谢老师的算法片段去处理古诗80首.古诗80首单独通过脚本,临时下载到club社区学习空间中
  • 添加更多实战项目
  • 添加更多算法分析
  • 添加更多数据结构