了解这种BST插入技术

时间:2015-03-19 20:55:05

标签: insert binary-search-tree avl-tree

我以为我了解BST。 直到我的教授出现。

我们说我有BST:

   2
  / \
 1   3

现在,如果我要插入4,我的树将会是这样的:

   2
  / \
 1   3
      \
       4

但是我的教授的树会像这样结束:

   2
  / \
 1   4
    / \
   3   4

基本上,他找到了新节点的放置位置并将其放置在那里。然后,他将新节点的父节点的值更改为新节点的值,并使父节点的左子节点与原始父节点相同。

我在网上看过,但找不到任何人这样做。

这是什么样的插入技术?我错过了什么吗? 我不认为它会有所作为,但这是专门针对AVL树的。

2 个答案:

答案 0 :(得分:0)

我认为他试图将树严格保持二进制,即每个节点有0个或正好是2个孩子。

据我所知,在这个例子中,第一个和第二个4s被添加到它们的位置。左旋转(平衡avl树所需)带来最终形状。

答案 1 :(得分:0)

您插入了密钥" 4"进入BST是完全对,我可以向你保证。这是将元素插入BST的正统和最简单的方法。

我认为你误解了你的教授,因为你的第三个插图是不正确的,至少是因为BST中的不允许重复,你有元素" 4"发生了两次。