gpt4 book ai didi

具有 int 节点的数学树的 Java 结构

转载 作者:行者123 更新时间:2023-12-02 07:36:58 25 4
gpt4 key购买 nike

在 Java 中,Tree 是表示具有此类属性的树的最佳结构吗:

  • 所有节点都是唯一int
  • 树的深度由 int d > 0 给出
  • 一个节点可以有多少个子节点没有限制

我需要做的操作:

  • 迭代任何节点仅位于第一层下方的子节点
  • 添加节点
  • 删除子树,即一个节点及其所有子节点一直向下
  • 提取子树,即在单独的树中定位并复制(克隆)

我不需要的操作:

  • 编辑节点

属性对于来说是完美的,所以也许在性能方面有一些 super 实现可用。 XMLTree 或其他。

目前我正在使用数组的数组来存储元素,但我发现它并不微妙。

最佳答案

这是一个Node 类的基本示例,可用于形成树结构。编写以深度优先或广度优先的方式迭代所有子节点的方法有一定的复杂性。

作为替代方案,您可以考虑使用 DefaultMutableTreeNode它免费提供这些方法( depthFirstEnumeration()breadthFirstEnumeration() )。此节点实现还允许您通过调用 setUserObject(Object) 附加用户对象。 。缺点是实现可能不像编写自己的结构那么紧凑,因此它实际上取决于树的大小。

public class Node {
private final int value;
private final List<Node> children;

public Node(int value) {
this.value = value;
this.children = new LinkedList<Node>();
}

public int getValue() {
return value;
}

public List<? extends Node> getChildren() {
return Collections.unmodifiableList(children);
}

public void addChild(Node child) {
children.add(child);
}
}

关于具有 int 节点的数学树的 Java 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com