红黑树与平衡二叉树(AVL)树

红黑树

定义:

1. 每个节点要么是红色,要么是黑色;

2. 所有的叶子结点是空结点,且都是黑色;

3. 如果一个结点是红色的,那么它的子节点都是黑色;

4. 根结点永远是黑色;

性质:

1. 红节点的孩子节点不能是红节点;

2. 从根到前端节点的任意一条路径上的黑节点一样多;

这两条性质确保该树的高度为logN,所以是平衡树。

       红黑树是每个节点都带颜色的树,节点的颜色要么红色要么黑色,红黑树是一种查找树。它还有一个重要性质,从根节点到叶子节点的最长路径不多于最短路径的两倍。对红黑树,插入,删除,查找的复杂度都为O(log N)。

平衡二叉树(AVL树)

定义:

1. 它的左子树和右子树都是AVL树;

2. 左子树和右子树的高度差不超过1;

性质:

1. AVL树的高度保持在O(log2(n))

2. 一个n个结点的AVL树的平均搜索长度保持在O(log2(n))

3. 一棵树n个节点的AVL树删除一个结点,做平衡旋转的时间为O(log2(n))

红黑树和平衡二叉树的比较:

       AVL 树是高度平衡的,频繁的插入和删除,会引起频繁的旋转,导致效率下降;红黑树不是高度平衡的,算是一种折中,插入最多两次旋转,删除最多三次旋转,相比来说,效率高一些。

    原文作者:AVL树
    原文地址: https://blog.csdn.net/zy345293721/article/details/82216482
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞