2012-03-28 50 views
10

是否有一個可以使用二叉樹的java庫?我不期待測試和實施我自己的。尋找已實施二叉樹的java庫

+0

你需要什麼二叉樹? – Bernard 2012-03-28 02:57:50

+4

基本上java.util.TreeSet是一個紅黑二叉樹,它是一個平衡二叉搜索樹。雖然,取決於你需要什麼。 – 2012-03-28 02:58:26

+0

是的 - 我想存儲的二叉樹不需要平衡。此外,它不是二叉搜索樹。我正在尋找每個節點都有左右孩子的基本實現。 – Esey 2012-03-28 03:11:31

回答

9

Java標準API只包含通用的庫和實用的平臺。一個基本樹是微不足道的實施:

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

非平凡樹木並非普遍有用:要麼需要它們作爲應用數據模型的一部分,這是更好的使用域特定類(組分具有-模型化子組件列表),或者它們被用作特定算法的一部分。算法通常需要來自節點的特定結構(例如維持樹平衡所需的節點的顏色或權重),所以通用樹節點沒有多大意義。

+0

謝謝@Joni - 這很有道理。我想我理所當然地認爲它一定在那裏 - 但事實並非如此。我將爲我的應用程序實施它。 – Esey 2012-03-28 13:43:35

+0

你對基本樹是正確的,但是肯定有一些非常重要的BST實現的一部分,就像找到最低和插入/移除(和平衡)一樣普遍有用,你不覺得嗎? – snydergd 2017-08-07 18:56:11

0

有此頁面上的示例實現的位置:-around在頁面的下半部分或所謂

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

+1

我正在尋找一個經過測試的庫。 – Esey 2012-03-28 03:13:46

+1

@Esey,然後自己寫測試... – 2012-03-28 07:04:10

+0

@Bart - 也許是另外一次:) - 我也可以自己實現它 - 但我正在實現一個應用程序「使用」二叉樹,如果我沒有不得不擔心這件事。謝謝回覆。 – Esey 2012-03-28 13:48:32

5

http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html

基於紅黑樹的NavigableMap實現。該地圖根據其鍵的自然排列順序 排序,或者由地圖創建時提供的比較器排序,具體取決於使用哪個構造函數 。

+2

它不適合我。我正在尋找一個基本的二叉樹。 – Esey 2012-03-28 03:30:29