我有一个大学项目,我需要在 dart 中实现一个 N-ary 树。
到目前为止,这是我的节点
class Node {
Node parent; // parent of the current node
List<Node> children; // children of the current node
int id;
String actualMessage;
Node (int id, String actualMessage){
this.id=id;
this.actualMessage=actualMessage;
children = new List<Node>();
}
}
我被困在如何实现以下方法上。我将尝试通过以下示例解释我需要什么
A 是根,有 3 个孩子:B、C 和 D。B 有 2 个孩子:E 和 F。E 有 1 个孩子:G。
- 如何将根/父节点/子节点添加到树 => 如何添加 A 、 B 和 E
- 如何从树中删除一个节点。=> 如何删除 B。它也应该删除它的孩子。
- 当父级作为参数传递(在单个级别上)=> 如何获取 A 上的实际消息时,如何检索父级和所有可能的子级的“实际消息”?方法也应该在 B、C 和 D 上返回实际消息
- 如何检索最长路径的节点数=>最长路径的节点数是从根到最后一个节点的路径。在我的情况下是4。
- 如何在到达根的任何节点上检索树的所有父节点的节点数和列表。=> G 的节点数为 4,G 的所有父节点列表为 E、B 和 A。
任何有关如何执行上述操作的代码或信息将不胜感激。这是我被困在同一件事上的第三天。
谢谢