2013-04-29 75 views
1

我應該在處理二叉搜索樹時總是使用一些數據作爲鍵值嗎?我問這是因爲我需要在某個時間點的密鑰 如果我想搜索樹中的元素。是否有其他選擇?在二叉搜索樹中處理「鍵」

例如,請考慮下面的代碼:

class Node { 

int iData; // data used as key value 
double fData; // other data 

Node leftChild; // this node's left child 

Node rightChild; // this node's right child 

} 

我的第二個問題:

有什麼辦法,我可以找到一個二叉樹元素作爲二叉樹沒有任何財產只是如二進制搜索樹,其中父節點的左側節點必須小於父節點,並且右側節點必須更大。

回答

2
  1. 我不明白你爲什麼總是需要一個密鑰。您可以使用double fData作爲您用來確定哪個節點更大/更小(如果您的需求適合)的值。
  2. 我相信二元搜索樹是一個二元樹,元素是有序的。因此二叉樹上的節點不一定是有序的。所以是的,你仍然可以在二叉樹上找到元素 - 但你必須掃描整個節點。您失去BST的性能優勢
+0

謝謝您的回答! – Tan 2013-04-29 00:55:31