我試圖學習二叉搜索樹,我有一個與BST插入有關的疑問。 這不是我的鱈魚Ë我採取這種從http://cslibrary.stanford.edu/110/BinaryTrees.html BST插入解釋
struct node* insert(struct node* node, int data) {
// 1. If the tree is empty, return a new, single node
if (node == NULL) {
return(newNode(data));
}
else {
// 2. Otherwise, recur down the tree
if (data <= node->data) node->left = insert(node->left, data);
else node->right = insert(node->right, data);
return(node); // return the (unchanged) node pointer-->THIS LINE
}
}
我懷疑如上代碼提到的我不明白,爲什麼根本沒有得到上插入改變(最後一行)。爲什麼每次都是同一個根?
這是BSTS如何工作之前,多瞭解遞歸函數。如果你想要一個數據結構,在插入元素時根改變了,而不是看看堆。 –
@BenjyKessler好吧,但它如何可以解釋你的同一根? –