我一直在尝试用
Rc<RefCell<>>
之类的东西来实现这个,但我总是遇到问题,谁能给我提供一个示例实现的链接?\
这是我试过的:
pub struct Node<T> {
value: T,
parent: Option<Rc<RefCell<Node<T>>>,
children: Vec<Rc<RefCell<Node<T>>>>,
}
我遇到的大多数问题都来自这样一个事实,即一个节点引用它的父节点,但它的父节点也引用该节点。
注意:我没有包含诸如添加子节点之类的功能,因为它很简单:创建对其父节点具有
Rc::clone()
的子节点,然后将子节点推入父节点的子字段。