本文共 684 字,大约阅读时间需要 2 分钟。
平衡二叉树:
二三树 AVL树 B树 红黑树如何保证一棵树的平衡?
二叉搜索树的查询效率只与高度有关,与结点的个数无关
(1)AVL
旋转操作:
左旋
a. 右右子树——》左旋右旋
a. 左左子树——》右旋左右旋
a. 左右子树——》左右旋为什么要引入AVL?
因为二叉搜索树会出现极端的情况,如果二叉搜索树的结点为1、2、3、4、5,则都为右结点,相当于一个链表了,则优势全无。
平衡因子怎么定的?
查询的时间复杂度等于树的深度
不足:结点需要存储额外信息,且调整次数频繁
(2)近似平衡二叉树——红黑树 Red-black Tree
红黑树是一种近似平衡二叉搜索树,它能够确保任何一个结点的左右子树的高度差小于两倍。具体来说,红黑树是满足如下条件的二叉搜索树:
从根到叶子的最长的可能路径不多于最短的可能路径的两倍长
AVL和红黑树的对比:
AVL查询更好
红黑树提供了更快的插入和删除的操作,AVL旋转更多 AVL存储的额外信息更多,需要更多的内存,红黑树需要存储的节点个数更少 如果读操作多 AVL;插入操作和查询操作比较多 红黑树
转载地址:http://fder.baihongyu.com/