我试图学习二叉搜索树,我有一个与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好吧,但它如何可以解释你的同一根? –