![](https://img-blog.csdnimg.cn/4b0a69316e034a8cad8029c8622ec0e9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Rust
Rust 学习
灯下校书人
这个作者很懒,什么都没留下…
展开
-
Rust二叉搜索树
节点的结构#[derive(Debug, Clone)]struct TreeNode<T> { pub data: T, pub left: Option<Box<TreeNode<T>>>, pub right: Option<Box<TreeNode<T>>>,}impl<T> TreeNode<T>where T: PartialOrd + Disp原创 2022-01-18 17:31:48 · 529 阅读 · 0 评论 -
Rust队列和栈
前言Rust 标准库里面是有 Vec这种可以在堆上分配内存的连续可增长的数组类型。可以用它很方便的实现队列和栈,但是他只能增长不能收缩。所以接下来使用链表实现队列结点的结构#[derive(Debug)]struct Node<T> { data: T, next: Option<Box<Node<T>>>,}impl<T> Node<T> { fn new(data: T) -> Self原创 2022-01-05 20:38:25 · 718 阅读 · 0 评论 -
Rust双向链表
节点的结构指向节点的指针可能为空值,所以在最外层包裹一层 Option一个节点可能存在被两个指针指向(前一个节点的 next 和后一个节点的 prev),指针需要用 Rc 包裹。Rc指针指向的值默认情况下是不可以修改的,只读性质。可以通过RefCell指针修改其内部的值#[derive(PartialEq, Eq, Clone, Debug)]struct ListNode<T> { pub data: T, pub next: Option<Rc<Re原创 2022-01-04 19:53:17 · 749 阅读 · 0 评论 -
Rust单链表
节点的结构希望链表存储在堆上,所以使用 Box 包裹节点 Rust 没有空值,所以用 Option 在包裹一层#[derive(PartialEq, Eq, Clone, Debug)]struct ListNode<T> { pub data: T, pub next: Option<Box<ListNode<T>>>,}根据索引查找节点和找尾节点是通过递归来查找的impl<T> ListNode<T>原创 2022-01-02 21:00:49 · 267 阅读 · 0 评论