【数据结构】【C#】030-平衡二叉树(AVL):🌴结构特征

2018-11-17  本文已影响6人  lijianfex

为了t提高二叉搜索树的查找效率,我们要尽可能的保持树的高度不要过高,也就是不要一边倒,让树的左右子树基本保持相同的高度或者差不多的节点数目,从而我们引入了 平衡二叉树的概念。

一、什么是平衡二叉树?

平衡因子(Balance Factor,简称BF)BF(T) = hL-hR其中hL和hR分别为T的左、右子树的高度
平衡二叉树(Balanced Binary Tree)(AVL树) : 空树,或者 任一结点左、右子树高度差的绝对值不超过1,即|BF(T) |≤ 1


二、平衡二叉树最大高度问题

平衡二叉树的高度能达到log2n吗?

设 h 高度为h的平衡二叉树的最少结点数。结点数最少时:

此时满足 :


结论 :给定结点数为 n的AVL树的 最大高度为O(log2n)


三、平衡二叉树的调整

要保证始终是平衡二叉树,就必然要在 插入 删除操作后对树进行调整,让其的|BF(T) |≤ 1
所以平衡二叉树的重要操作是调整树,下篇笔记将介绍四种平衡二叉树插入调整

上一篇下一篇

猜你喜欢

热点阅读