在具有Comparable userObject的java中的N-ary搜索树?

时间:2010-02-18 23:09:03

标签: java search n-ary-tree

因此,假设我正在使用javax.swing.tree.DefaultMutableTreeNode构建一个树,并且我将N个子节点添加到特定节点。我想让孩子们按照特定的顺序(基于Comparable /自定义比较器),就像搜索树一样,即使我不按顺序插入它们,如下所示:

node.insert(child2);
node.insert(child3);
node.insert(child1);

但DefaultMutableTreeNode不做那样的任何排序。对于我的特殊情况,我甚至知道父数组中子节点的所需索引,但我尝试了DefaultMutableTreeNode.insert并获得了大量的ArrayIndexOutOfBoundsExceptions。

有人可以推荐一个能满足我需要的库吗?或者我是否必须自己编写一个搜索树?

1 个答案:

答案 0 :(得分:1)

通常,您在树中插入节点,以便对某些traversal order进行排序。这取决于树的拓扑结构。您可以从How to Use Trees, Creating a Data Model获得一些实施方案。特别是,“the”TreeModel接口接受任何类型的对象作为树节点。它不要求DefaultMutableTreeNode对象表示节点,甚至不要求节点实现TreeNode接口。“