美文网首页
平衡二叉树(AVL树)

平衡二叉树(AVL树)

作者: 吴健民IT | 来源:发表于2021-04-06 14:59 被阅读0次

AVL树仍然是一棵二叉查找树。

平衡是指对AVL树的任意结点来说,其左子树和右子树的高度之差的绝对值不超过1。

平衡因子是指左子树和右子树的高度之差。

因此需要在树的结构中加入一个变量height

左旋的三个步骤:

①让B的左子树成为A的右子树

②让A成为B的左子树

③将根结点设定为结点B

右旋则把左旋代码里的lchild改为rchild,rchild改为lchild就行了

LL、LR、RR、RL:

在这个基础上,由于需要从插入的结点开始从下往上判断结点是否平衡,因此需要在每个insert函数之后更新当前子树的高度,并在这之后根据树型是LL型、LR型、RR型、RL型之一来进行平衡的操作:

相关文章

网友评论

      本文标题:平衡二叉树(AVL树)

      本文链接:https://www.haomeiwen.com/subject/jrvdkltx.html