问题 寻找已实现二叉树的java库[关闭]


是否有一个可以使用二进制树的java库?我不期待测试和实施我自己的。


12341
2018-03-28 02:41


起源

你需要什么二叉树? - Bernard
基本上java.util.TreeSet是一个红黑二叉树,它是一个平衡的二叉搜索树。但是取决于你需要什么。 - Eugene Retunsky
是的 - 我想要存储的二叉树不需要平衡。此外,它不是二叉搜索树。我正在寻找每个节点都有一个左右孩子的基本实现。 - Esey
根据您的上一条评论,在java中有一个链表,其中包含每个节点的子节点和子节点。 - kandarp


答案:


Java标准API仅包含普遍有用且不易实现的库。实现基本树是微不足道的:

class BinaryTree {
    BinaryTree left;
    BinaryTree right;
    Object value;
}

非平凡树不是普遍有用的:要么将它们作为应用程序数据模型的一部分需要,最好使用特定于域的类(组件具有子组件列表)进行建模,或者将它们用作一种特定的算法。算法通常需要来自节点的特定结构(例如,维持树平衡所需的节点的颜色或重量),因此通用树节点没有多大意义。


9
2018-03-28 06:52



谢谢@Joni--这很有道理。我想我认为它必须在那里是理所当然的 - 但事实并非如此。我会为我的应用实现它。 - Esey
你对基本的树是正确的,但肯定有一些非平凡的BST实现的部分与任何东西一样普遍有用,比如寻找最低和插入/删除(和平衡),你不觉得吗? - snydergd


关于什么 http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html

基于红黑树的NavigableMap实现。地图按照自然分类   它的键的排序,或者在地图创建时提供的比较器,具体取决于哪个   使用构造函数。


5
2018-03-28 03:03



这对我不起作用。我正在寻找一个基本的二叉树。 - Esey


你的意思是这样的: http://www.codeproject.com/Articles/53366/Binary-Trees-in-Java

http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm


1
2018-03-28 02:47



不 - 我想导入它并说:BinaryTree x = new BinaryTree();换句话说,我想重用一个工作包,类...... - Esey


也许是Swing的 的TreeModel 及其实施 - DefaultTreeModel的


1
2018-03-28 03:44





这个页面上有一个示例实现: - 在页面的下半部分 - 或 -

http://cslibrary.stanford.edu/110/BinaryTrees.html


0
2018-03-28 02:49



我正在寻找一个经过测试的库。 - Esey
@Esey,然后自己写测试...... - Bart Kiers
@Bart - 可能是另一次:) - 我也可以自己实现它 - 但我正在实现一个“使用”二叉树的应用程序,如果我不必担心这个其他部分会很好。谢谢回复。 - Esey
@Esey,你 真 寻找BT(二叉树),而不是BST(二叉搜索树)?使用BT,树中的值之间没有顺序。有点奇怪需要这样一棵树...... - Bart Kiers