【数据结构】红黑树基础
来源:互联网 发布:imei 校验码 python 编辑:程序博客网 时间:2024/06/04 18:03
1、红黑树
红黑树是一种自平衡二叉搜索树,在实际应用中有很广泛的用途。STL中的set, multiset, map, multimap的底层均是由红黑树实现的。
红黑树有一下4个特性:(根据后面的例子看以下几个特性)
1、红黑树中的每一个节点不是黑色就是红色;
2、根节点(root)和叶子(叶子节点的孩子节点NIL)是黑色的;
3、如果一个节点为红色,那么它的父节点一定是黑色的;
4、从任何节点出发到叶子的路径经过的黑色节点数目必定相等(树黑色高度相等)。
上述4个特性是红黑树必须要满足的条件。
2、为什么能保持红黑树的平衡
一个有n个结点的红黑树的树高h满足:
h≤2lg(n+1)
下面来简单证明:
3、红黑树的元素插入
红黑树的元素插入过程:想将待插入的元素标记为红色,将元素插入到合适的位置。按照规则改变节点的颜色,适当的旋转树结构。针对上述红黑树,假设插入元素15,分析插入过程。
0 0
- 【数据结构】红黑树基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 基础数据结构
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 基础数据结构
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 数据结构基础
- 修改tomcat内存大小
- HTML <!DOCTYPE> 标签
- iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet)
- Java程序从apk和ipa中获取资源
- Java day05 抽象类
- 【数据结构】红黑树基础
- Java基础语法
- soledede-矩阵分解模型
- python ——使字典按添加顺序输出
- Disconf入门指南(1)
- android getTextSize返回值是以像素(px)为单位的,setTextSize()以sp为单位
- svn报错 Previous operation has not finished; run 'cleanup' if it was interrupted
- loadrunner之添加事务
- samba服务器搭建