红黑树浅谈
来源:互联网 发布:胎教讲故事软件 编辑:程序博客网 时间:2024/05/20 06:09
今天花了一个下午+晚上看了,《算导》的二叉搜索树,还有红黑树。
STL 中set、 map都是内部维护一颗红黑树。
红黑树介绍:
红黑树就是一棵平衡二叉搜索树。只不过是在每个节点上添加了颜色(Black and Red),红黑两种颜色 。红黑树确保没有一条路径会比其
他路径长出俩倍,因而是接近平衡的。
一般普通的二叉搜索树,传统意义上建树O(nlogn),插入,删除,查找的复杂度O(logn), 因为是近乎二分渐进的。但是这个是基于这个二叉树是平衡的基础上,如果这个
数比较奇葩,是一条链式的。那二叉搜索树的各种操作,就和链表的操作差不多。
所以就产生了很多使一棵树平衡的算法。红黑树就是一个,还有treap,伸展树等等。
如下就是一颗红黑树:每个节点包含有left,rigth,p,val,color这5个性质(左孩子,有孩子,双亲,值,颜色)。
需要注意的是:红黑树,将所有的null节点设置为黑色,并且只用一个表示,所有的叶子节点都指向它,根节点的p也指向它。
红黑树性质:
1.每个节点或是红色,或是黑色。
2.根节点是黑色的。
3.每个叶节点(NIL)是黑色的
4. 如果一个节点是红色的,那么它的两个子节点都是黑色的
5 对每个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。
红黑树 插入,删除节点都得使节点满足如上性质。
插入删除都得用到 的知识 节点的旋转:
右旋: 就是把左边旋转到自己这然后自己跑到他的右边
左旋:同理
插入、删除 以后再补充。
1 0
- 红黑树浅谈
- 浅谈红黑树
- 浅谈数据结构--红黑树
- 浅谈
- 浅谈红黑树的添加删除操作
- 浅谈平衡搜索树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树
- range xrange iterator generator
- HighCharts之2D堆条状图
- GCC与LLVM见解
- TreeMap的有序设计及实现
- 第一篇博客
- 红黑树浅谈
- 蓝桥杯----连号区间数
- POJ 2407 Relatives
- 黑客工具包
- MASM32 控制台输入输出
- Linux下mysql备份 恢复
- Word实用教程——五分钟教你如何在任意页开始添加页码
- This version of the rendering library is more recent than your version of ADT plug-in. Please update
- asterisk 命令