假设我正在使用 javax.swing.tree.DefaultMutableTreeNode 构建一棵树,并将 N 个子节点添加到特定节点。我希望子项按特定顺序排列(基于 Comparable/自定义比较器),就像搜索树一样,即使我乱序插入它们也是如此:
node.insert(child2);
node.insert(child3);
node.insert(child1);
但 DefaultMutableTreeNode 不会进行任何类型的排序。对于我的特殊情况,我什至知道父数组中子节点的所需索引,但我尝试了 DefaultMutableTreeNode.insert 并得到了很多 ArrayIndexOutOfBoundsExceptions。
谁能推荐一个满足我需要的库?还是我必须自己编写这样的搜索树?
最佳答案
通常,您在树中插入节点,以便它保持对某些 traversal order 排序.这取决于树的拓扑结构。您可能会从 How to Use Trees, Creating a Data Model 中获得一些实现思路。 .特别是,“TreeModel 接口(interface)接受任何类型的对象作为树节点。它不需要节点由 DefaultMutableTreeNode 对象表示,甚至不需要节点实现 TreeNode 接口(interface)。”
关于java - 具有可比用户对象的Java中的N元搜索树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2292929/