2012-04-30 55 views
1

我在業餘時間一直在使用二叉搜索樹,我希望能夠從樹中刪除節點。二叉搜索樹,你如何找到最大值?

爲了得到這個工作,我需要找到最大值。你如何去做這件事?僞代碼或提示將不勝感激。我被卡住了,並不確定如何開始這個。

+0

容易被搜索... http://duckduckgo.com/?q=%22binary+tree%22+find+maximum&kl=au-en –

+5

回答爲什麼你需要找到訂單的最大值從樹中刪除節點? (並且......請原諒我的懷疑態度,但是這是否真的是空閒時間還是作業?它聽起來很像家庭作業。) –

+1

絕對有空閒時間。我做了一個關於它的任務,並且不需要做任何刪除操作。我環顧我老師的網站,看到他有一個引用「find max」的示例。我想學習如何自己做,因爲我不想自己掌握整個概念。 –

回答

5

二叉搜索樹具有以下屬性:

節點的左子樹只包含鍵小於節點的關鍵節點。 節點的右側子樹只包含密鑰大於節點密鑰的節點。 左右子樹也必須是二叉搜索樹。

考慮到這個定義,應該很容易找到最大值。

+0

這幫了很大忙。非常感謝你! –

+0

確實 - 繼續往右走。沒有右子節點的節點包含最大值。 –

0

一個簡單的僞代碼就是這個。它與我認爲的二分搜索是獨立的。

int maxi = 0 
foreach(array as item) // or any other loop 
    if item>maxi then maxi = item