我以为我了解BST。 直到我的教授出现。
我们说我有BST:
2
/ \
1 3
现在,如果我要插入4,我的树将会是这样的:
2
/ \
1 3
\
4
但是我的教授的树会像这样结束:
2
/ \
1 4
/ \
3 4
基本上,他找到了新节点的放置位置并将其放置在那里。然后,他将新节点的父节点的值更改为新节点的值,并使父节点的左子节点与原始父节点相同。
我在网上看过,但找不到任何人这样做。
这是什么样的插入技术?我错过了什么吗? 我不认为它会有所作为,但这是专门针对AVL树的。
答案 0 :(得分:0)
我认为他试图将树严格保持二进制,即每个节点有0个或正好是2个孩子。
据我所知,在这个例子中,第一个和第二个4s被添加到它们的位置。左旋转(平衡avl树所需)带来最终形状。
答案 1 :(得分:0)
您插入了密钥" 4"进入BST是完全对,我可以向你保证。这是将元素插入BST的正统和最简单的方法。
我认为你误解了你的教授,因为你的第三个插图是不正确的,至少是因为BST中的不允许重复,你有元素" 4"发生了两次。