本文共 939 字,大约阅读时间需要 3 分钟。
平衡二叉树(Balanced Binary Search Tree,简称AVL树)是由Adelson-Velskii和Landis于1962年提出的,用于保持二叉排序树的高度较低,减少IO操作时间等关键性性能指标的影响。
平衡二叉树是一个二叉排序树,满足以下条件:
每个节点的平衡因子(Balance Factor,BF)定义为左子树深度减去右子树深度,取值范围为-1、0、1。平衡因子绝对值超过1时,该节点的子树即为失衡。
当在平衡二叉树中插入或删除节点时,可能导致平衡性破坏。此时需要:
失去平衡的最小子树是插入或删除节点后导致平衡因子绝对值达到2的根节点及其子树的范围。
各类型旋转操作如下:
在P节点的左孩子左子树插入节点,或P节点的左孩子右子树删除节点后导致P的平衡因子变为2。此时:
在P节点的右孩子右子树插入节点,或右孩子左子树删除节点后导致P的平衡因子变为-2。此时:
在P节点的左孩子右子树插入节点后,使P的平衡因子变为2。此时:
在P节点的右孩子左子树插入节点后,使P的平衡因子变为-2。此时:
这些旋转操作保证了在插入或删除节点后,平衡子树始终保持高度平衡,确保了整体树的性能优势。
平衡二叉树通过旋转操作(3-4次最多一次)调整局部失衡,保持整体平衡,从而实现高效操作和较低的时间复杂度。
转载地址:http://nlctz.baihongyu.com/