【发布时间】:2012-08-22 21:10:51
【问题描述】:
在 Java 中,Tree 是表示具有此类属性的树的最佳结构:
- 所有节点都是唯一的
ints; - 树的深度由
int d > 0给出 - 一个节点可以有多少个子节点没有限制
我需要做的操作:
- 遍历子节点仅位于第一层以下任何节点
- 添加节点
- 删除一个子树,即一个节点,其所有子节点一直向下
- 提取子树,即在单独的树中定位和复制(克隆)
我不需要的操作:
- 编辑节点
属性非常适合Tree,因此在性能方面可能有一些超级实现可用。 XMLTree 或其他。
目前我正在使用数组数组来存储元素,但我发现它并不微妙。
【问题讨论】:
-
关于插入/删除/搜索操作的任何限制?重复条目怎么办?
-
我可能会创建一个类来表示一个节点。该类将有一个带有值的 int 字段和子节点的
ArrayList。有一些图形库可以为您执行此操作,但除非您需要担心性能或多线程,否则您自己的库可能是最快的。 -
我会不断地插入/删除/搜索。实际上,没有什么可搜索的,我通过它们的唯一表示预先知道节点,然后将它们连同它的子节点一起从树中获取。没有重复。
-
我担心性能问题。
-
这可能仍然是最简单的方法。