![](/img/trans.png)
[英]recursive implementation of reconstructing Binary search tree from preorder array in Java?
[英]Implementation of Uniform Recursive Tree Java
我能夠找到許多樹的實現,例如,
http://sujitpal.blogspot.com/2006/05/java-data-structure-generic-tree.html
現在我正在尋找Java中統一遞歸樹的實現。 本文介紹了統一遞歸樹的詳細信息。 http://www.sciencedirect.com/science/article/pii/S0022247X05004191
在此先感謝您的幫助。
實際上,這並不難實現。 您基本上是從n元樹開始的,您所要做的就是弄清楚如何將一個節點作為子節點添加到樹中的現有節點之一。
對於具有k
節點的樹,新節點k + 1
可以成為先前k
節點中的任何一個的子節點(即,集合{1, 2, ..., k}
中的任何節點)。
您需要的是樹中當前存在的所有節點的列表。 我將保持這是Tree
數據結構中一個獨立的內部結構。 然后,您將必須弄清楚如何選擇樹的節點之一。 這是通過概率函數完成的。 我發現這部分內容尚不清楚,這主要是因為我忘記了很多概率材料(而且我討厭在學校學習概率)。 但是本文確實解釋了如何計算概率。 本質上,您具有一系列概率質量函數。 因此,如果您有一個節點1
,然后有一個節點2
,則節點2
將附加到節點1
(因為只有一個節點可將2
附加到該節點)。 節點3
將以概率p(2, 1)
附加到節點1
或節點2
以概率p(2, 2)
附加到節點p(2, 2)
。 不過,您必須確定的是:
p(k, i) >= 0
和:
sigma(p(k, i)) from i = 1 to k equals 1
天真的實現方式是從現有節點列表中隨機選擇一個節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.