06 2022 档案

摘要:环境 Time 2022-04-12 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用迭代的方式获取二叉搜索树中的最大和最小值。 示例 节点定义 type Nod 阅读全文
posted @ 2022-06-30 09:16 jiangbo4444 阅读(38) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-11 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用迭代的方式查询二叉搜索树中的最大和最小值。 示例 节点定义 type Nod 阅读全文
posted @ 2022-06-30 09:15 jiangbo4444 阅读(65) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-12 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用迭代的方式删除二叉搜索树中的某个节点。 示例 节点定义 type NodeR 阅读全文
posted @ 2022-06-30 09:14 jiangbo4444 阅读(62) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-11 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用迭代的方式来实现二叉搜索树的节点检索。 示例 节点定义 type NodeR 阅读全文
posted @ 2022-06-30 09:13 jiangbo4444 阅读(55) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-11 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用递归的方式来实现二叉搜索树的节点检索。 示例 节点定义 type NodeR 阅读全文
posted @ 2022-06-30 09:09 jiangbo4444 阅读(36) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-11 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用迭代的方式来实现二叉搜索树的节点插入。 示例 节点定义 type NodeR 阅读全文
posted @ 2022-06-30 09:08 jiangbo4444 阅读(64) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-11 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构,未考虑实现性能。 特点 相比较二叉树,二叉搜索树的左节点都比父节点小,右节点都比父节点大。 使用递归的方式来实现二叉搜索树的节点插入。 示例 节点定义 type NodeR 阅读全文
posted @ 2022-06-30 09:06 jiangbo4444 阅读(48) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-10 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 之前使用递归的方式实现了二叉树的后序遍历,这里使用迭代的方式。 示例 节点定义 type NodeRef<T> = Option<Box<Node<T>>>; st 阅读全文
posted @ 2022-06-30 09:04 jiangbo4444 阅读(40) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-06 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 二叉树是一个节点最多有两个分支的树。到目前为止,标准库还没有内置支持。 示例 节点定义 type NodeRef<T> = Option<Box<Node<T>>> 阅读全文
posted @ 2022-06-30 09:02 jiangbo4444 阅读(50) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-10 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 之前使用递归的方式实现了二叉树的中序遍历,这里使用迭代的方式。 示例 节点定义 type NodeRef<T> = Option<Box<Node<T>>>; st 阅读全文
posted @ 2022-06-30 09:01 jiangbo4444 阅读(52) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-06 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 二叉树是一个节点最多有两个分支的树。到目前为止,标准库还没有内置支持。 示例 节点定义 type NodeRef<T> = Option<Box<Node<T>>> 阅读全文
posted @ 2022-06-30 09:00 jiangbo4444 阅读(68) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-09 Rust 1.60.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 之前使用递归的方式实现了二叉树的前序遍历,这里使用迭代的方式。 示例 节点定义 type NodeRef<T> = Option<Box<Node<T>>>; st 阅读全文
posted @ 2022-06-30 08:59 jiangbo4444 阅读(62) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-06 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 二叉树是一个节点最多有两个分支的树。到目前为止,标准库还没有内置支持。 示例 节点定义 type NodeRef<T> = Option<Box<Node<T>>> 阅读全文
posted @ 2022-06-30 08:58 jiangbo4444 阅读(96) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-02 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 链表也是一种线性的数据结构,可以方便地插入和删除元素,不过按位置访问需要从头遍历。 由于 Rust 的所有权机制,实现链表比其它语言复杂,不过标准库已内置。 示例 阅读全文
posted @ 2022-06-30 08:56 jiangbo4444 阅读(479) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-02 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 双端队列可以在队首或者队尾加入或者删除数据。 示例 抽象数据接口 trait Deque<T> { /// 新建一个空队列 fn new() -> Self; // 阅读全文
posted @ 2022-06-30 08:54 jiangbo4444 阅读(205) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-02 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 队列是一种先进先出(FIFO)的数据结构。 示例 抽象数据接口 trait Queue<T> { /// 新建一个空队列 fn new() -> Self; /// 阅读全文
posted @ 2022-06-30 08:52 jiangbo4444 阅读(1222) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-02 Rust 1.59.0 前言 说明 基于标准库来学习各种数据结构,并不是从头实现数据结构。 特点 栈是一种后进先出(LIFO)的数据结构。 示例 抽象数据接口 trait Stack<T> { /// 新建一个空栈 fn new() -> Self; /// 栈 阅读全文
posted @ 2022-06-30 08:51 jiangbo4444 阅读(525) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-30 Rust 1.59.0 演示 思想:将大列表分割成小列表,在将小列表排序后组合成大列表再次排序。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 递归实现 fn merge_sort(data: &mut [i32 阅读全文
posted @ 2022-06-28 23:46 jiangbo4444 阅读(193) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-01 Rust 1.59.0 演示 思想:将列表中每个数按照基数拆分成不同的位数,然后分别对不同的位数分别进行排序。 限制:不能有负数,最大值不能太大。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 实现 fn rad 阅读全文
posted @ 2022-06-28 23:44 jiangbo4444 阅读(68) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-31 Rust 1.59.0 演示 思想:定义个长度为列表中最大值的数组,然后将列表中每个值对应到数组的索引上。 限制:不能有负数,最大值不能太大。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 实现 fn count 阅读全文
posted @ 2022-06-28 23:43 jiangbo4444 阅读(56) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-30 Rust 1.59.0 演示 思想:选择一个中间值,不停交换左右两侧(和中间值比较大小),直到有序。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 实现 fn quick_sort(data: &mut [i32 阅读全文
posted @ 2022-06-28 23:42 jiangbo4444 阅读(344) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-01 Rust 1.59.0 演示 思想:将列表间隔的元素分别排序,然后缩小间隔,直接所有元素有序。 参考:https://github.com/TheAlgorithms/Rust/blob/master/src/sorting/shell_sort.rs 示例 实 阅读全文
posted @ 2022-06-28 23:40 jiangbo4444 阅读(60) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-29 Rust 1.59.0 演示 思想:在每一次遍历的过程中,找当前最大或者最小的,然后进行位置交换。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 实现 fn selection_sort(data: &mut [ 阅读全文
posted @ 2022-06-28 23:39 jiangbo4444 阅读(65) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-29 Rust 1.59.0 演示 思想:依次遍历元素并将其插入到已排序的部分中,直到所有元素有序。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 实现 fn insertion_sort(data: &mut [i3 阅读全文
posted @ 2022-06-28 23:37 jiangbo4444 阅读(83) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-28 Rust 1.59.0 演示 思想:如果相邻的两个元素不符合顺序要求,则交换两者的位置。 动画来源:https://visualgo.net/en/sorting?slide=1 示例 实现 fn bubble_sort(data: &mut [i32]) { 阅读全文
posted @ 2022-06-28 23:35 jiangbo4444 阅读(92) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-04-01 Rust 1.59.0 资源 Rust 数据结构和算法(中文):https://github.com/QMHTMY/RustBook Rust 数据结构和算法(中文):http://algos.rs/about-book.html Rust 数据结构和算法(英文 阅读全文
posted @ 2022-06-28 23:34 jiangbo4444 阅读(321) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 get_or_insert_with fn main() { let mut name = Some("JiangBo"); println!("{:?}", name.get_or_insert_with(|| "Rust")); 阅读全文
posted @ 2022-06-28 23:32 jiangbo4444 阅读(49) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 iter_mut fn main() { let mut name = Some("JiangBo".to_owned()); println!("{:?}", name.iter_mut().next()); } and fn m 阅读全文
posted @ 2022-06-28 23:30 jiangbo4444 阅读(40) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 unwrap_unchecked fn main() { let name = Some("JiangBo"); println!("{:?}", unsafe { name.unwrap_unchecked() }); } map 阅读全文
posted @ 2022-06-28 23:28 jiangbo4444 阅读(37) 评论(0) 推荐(0) 编辑
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 is_some fn main() { let name = Some("JiangBo"); println!("{:?}", name.is_some()); } is_none fn main() { let name = S 阅读全文
posted @ 2022-06-28 23:27 jiangbo4444 阅读(67) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示