2012-10-20 47 views
1

我有一個父指針[0 1 1 2 2 3 3 5 5 ....],它基本上是一個二叉樹的向量。索引是孩子,相應的值表示它在同一個向量中的父代的索引。從增加索引的二叉搜索樹生成

例如:在上述向量中,如果您計數到索引5,則元素爲2,這意味着它的父代位於索引2處。同樣在索引2處,元素爲1,這意味着父代位於索引1處。在索引1處,元素是0,它是根節點。

如何從此創建二叉搜索樹?

OR,

我生成二進制樹格式的數據中,我知道與子女的父或母,以及我怎樣才能將它們存儲在二叉搜索樹?

兒童的索引總是大於父親,如上圖所示。 一個例子是:我把節點1分成兩個節點2和3.然後把節點2分成4和5.然後我把節點4分成6和7等等。 我想在二叉搜索樹中保留父子關係。

問候

Wajahat

+1

什麼問題?我在帖子中看不到問號... – iwein

+0

對不起,現在您可以輕鬆識別問題。 – Wajahat

+0

謝謝,現在更清楚了 – iwein

回答

0

根據您在矢量規範生成與空元素二叉樹。 當新的元素到達時,找到放置它的地方:根據二叉搜索樹規則遍歷樹 - 左子樹中的所有子元素都小於一個元素,並且右子樹中的所有子元素都較大。填充二叉樹中元素對應的節點。 例如,如果你在某個時間點上有這樣的樹:

和新價值3到達,它將填補節點的右子用值2 然而,如果5到達時,有沒有地方把它放在預定義的樹結構中。