Rust 程序设计语言 简体中文版 1.85.0
的树结构。 创建树形数据结构:带有子节点的 Node 首先,我们将构建一个节点能够知道其子节点的树。创建一个用于存放其拥有所有权的 i32 值 和对其子 Node 的引用: 文件名:src/main.rs use std::cell::RefCell; use std::rc::Rc; #[derive(Debug)] struct Node { value: i32, children: children: RefCellNode>>>, } 我们希望 Node 能够拥有其子节点,同时也希望能将所有权共享给变量,以便可以直接访问树 中的每一个 Node,为此 Vec 的项的类型被定义为 Rc<Node>。我们还希望能修改其他节点的 子节点,所以 children 中 Vec Node>> 被放进了 RefCell 。 接下来,使用此结构体定义来创建一个叫做 接下来,使用此结构体定义来创建一个叫做 leaf 的带有值 3 且没有子节点的 Node 实例,和 另一个带有值 5 并以 leaf 作为子节点的实例 branch,如示例 15-27 所示: 文件名:src/main.rs fn main() { let leaf = Rc::new(Node { value: 3, children: RefCell::new(vec![]), 0 码力 | 562 页 | 3.23 MB | 9 天前3
共 1 条
- 1