在Java中,Tree
是表示具有此类属性的树的最佳结构:
int
s; int d > 0
我需要做的操作:
我不需要的操作:
属性非常适合Tree
,因此可能在性能方面有一些超级实现。 XMLTree
或其他什么。
目前我正在使用数组数组来存储元素,但我发现它并不精确。
答案 0 :(得分:2)
以下是可用于构建树结构的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);
}
}