浅谈红黑树

来源:互联网 发布:手机点菜软件 编辑:程序博客网 时间:2024/06/11 22:03

红黑树,一种二叉查找树,但在每个节点上增加一个存储位表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个节点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。


既然是二叉查找树,那么红黑树必满足二叉查找树的一般性质:

① 在一棵二叉查找树上,执行查找、插入、删除等操作的时间复杂度为O(logn)。

② 若是一棵具有n个节点的线性链,则最坏时间复杂度为O(n)。


红黑树,能保证在最坏情况下的时间复杂度均为O(logn)。

红黑树上每个节点内含五个域,color,key,left,right。如果相应的指针域没有,则设为NIL。


一般的,只有满足以下全部性质的树,才称之为红黑树:

① 每个节点要么是红的,要么是黑的。

② 根节点是黑的。

③ 每个叶节点,即空节点(NIL)是黑的。

④ 如果一个节点是红的,那么它的两个子节点都是黑的。

⑤ 对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点。

1 0
原创粉丝点击