Data structures 基本和平衡BST插入节点放置

Data structures 基本和平衡BST插入节点放置,data-structures,tree,binary-search-tree,avl-tree,Data Structures,Tree,Binary Search Tree,Avl Tree,我有一些关于子节点的特定位置的问题,因为我只是在学习 即使在阅读了一些源代码和做了一些在线插入小程序之后,它仍然非常混乱。 假设我想将节点5,7,3,4添加到一个空的基本BST add 5 5 add 7 5 7 add 3 5 3 7 add 4 5 3 7 4 好的,我理解左边的孩子必须小于父母并且小于或 等于同一父项中的正确子项。我跟随它直到我们添加4节点。怎么 我们是否确定插入4的位置是右下叶位

我有一些关于子节点的特定位置的问题,因为我只是在学习 即使在阅读了一些源代码和做了一些在线插入小程序之后,它仍然非常混乱。 假设我想将节点5,7,3,4添加到一个空的基本BST

 add 5

  5  

 add 7

   5
      7   

 add 3

   5

3     7

 add 4

   5

3     7

  4
好的,我理解左边的孩子必须小于父母并且小于或 等于同一父项中的正确子项。我跟随它直到我们添加4节点。怎么 我们是否确定插入4的位置是右下叶位置3,而不是左下叶位置? 此外,对节点5、18、3、7、11进行AVL插入,产生了一些令人惊讶的位置放置。插入第四个节点7时,从3个节点下降到18个节点。有什么特别的原因吗?假设这是正确的方法,插入11将切换11点和18点,但18点作为父节点,7点作为左子节点,11点作为右子节点不符合左子节点小于父节点、小于或等于右子节点的原则吗?我糊涂了!我将感谢任何帮助。谢谢大家!

插入7

 5
3 18

插入11

 5
3 11

 7 18

在BSTs中,任何节点的左(右)子树中的元素都小于(大于)子树根的父元素。所以,在5的左子树中,3和4都小于5。现在看3。4之所以向右,是因为4比3大,所以它向右

你的AVL问题也一样。7成为18的左子代,而不是3的右子代,因为5是根。在执行插入操作时,可以一次比较一个级别的图元。“7比5(根)大吗?是的,向右走。7比18大吗?不,向左走。没有要比较的节点,所以7在这里”

将11作为右边的子项不适合BST。11小于18,因此它应该位于以18为根的左边子树中

 7 18