我需要創建一個樹,可能有任意數量的節點構成(在合理範圍內,0至10之間說的)輸出轉移的,就像這樣:這是什麼樣的對象樹?
X
/| \
X X X
/
X
/\
X X
什麼樣的樹結構的這是什麼?有什麼技術可以用來構建和特別修改這種樹?
謝謝
我需要創建一個樹,可能有任意數量的節點構成(在合理範圍內,0至10之間說的)輸出轉移的,就像這樣:這是什麼樣的對象樹?
X
/| \
X X X
/
X
/\
X X
什麼樣的樹結構的這是什麼?有什麼技術可以用來構建和特別修改這種樹?
謝謝
這只是一個通用樹。也許因爲二叉樹很常見,這棵樹看起來不同,但實際上,它是二叉樹,是樹的特例。
你不需要任何特殊的技術來處理樹。如果你習慣於二叉樹,你可能使用左右指針來保持孩子。在這種情況下,如你所說,如果你想要0到10個孩子,你可以用一個10個指針的數組代替左/右。
它是一棵樹,純粹而簡單。它只是不是二進制樹(每個節點最多有2個子節點)。大多數樹形結構都應該能夠處理它。
聽起來像是2-3 tree的一種形式,但它不一定是2個數據entrys,有3個鏈接到其他節點,您可以隨意擴展它。
從單獨提供的信息來看,此樹不屬於任何特殊類別。我想你正在考慮沿着二叉樹的路線,但是一旦你得到了許多2或0以外的孩子的節點,就沒有特別的分類。
根據它的實現和使用方式的不同,它可能是也可能不是有序樹:有序樹節點以明確的有意圖順序而不是以任意順序存儲子節點。
如果它是一個有序樹(或至少被實現爲一個),任何給定的節點都可以表示爲一系列數字,表示從基節點開始的一系列節點到子運動。例如,
0, 0, 1
將代表基節點的最左邊孩子的唯一孩子的正確孩子。以這種方式存儲對節點的引用可以簡化很多事情,編寫一個簡單的函數來遍歷這個系列並返回結果節點非常簡單。
你有什麼只是一棵普通的樹。特殊情況是二叉樹或平衡樹。它既不是。
在大多數語言中都有用於操作這些庫的庫。遞歸是一種流行的技術。所有關於數據結構的大學教科書都將深入討論如何刪除樹。你可以得到一個overview here。
我看不出有什麼特別的這棵樹。 – kennytm 2010-07-02 19:18:58
看起來像一棵樹給我 – FinnNk 2010-07-02 19:19:56
這是什麼語言?有HTML DOM,XML DOM,JavaScript關聯數組,JavaScript多維數組等。 – 2010-07-02 19:23:48