提问人:Snek 提问时间:4/2/2023 最后编辑:Samuel HapakSnek 更新时间:4/2/2023 访问量:178
如何在 rust 中实现节点知道其父级和子级的树
How do I implement a tree in rust where nodes are aware of their parent and children
问:
我一直在尝试用这样的东西来实现它,但我总是遇到问题,任何人都可以为我提供示例实现的链接吗?Rc<RefCell<>>
这是我尝试过的:
pub struct Node<T> {
value: T,
parent: Option<Rc<RefCell<Node<T>>>,
children: Vec<Rc<RefCell<Node<T>>>>,
}
我遇到的大多数问题都来自这样一个事实,即节点引用它的父节点,但它的父节点也引用节点。
注意:我没有包含诸如添加子节点之类的函数,因为它很简单:创建具有其父节点的子节点,然后将子节点推送到父节点的 children 字段。Rc::clone()
答: 暂无答案
评论
Weak
而不是父级,除此之外,您的定义在第一次尝试时看起来没问题。如果没有关于你到底在哪里被卡住的进一步信息,我们无法进一步帮助你。也许您想阅读 Learning Rust With Totally Too Many Linked Lists,其中涵盖了双链表的主题,其中哪些树只是它们的概括。Rc