再回首数据结构—红黑树(一)

栏目: 数据库 · 发布时间: 6年前

内容简介:红黑树与AVL树一样同为二分搜索树,红黑树又称为是保持“黑平衡”的二叉树,红黑树最大高度为:2logn,红黑树由这么几个独特的特征:1、每个节点或黑或红2、根节点为黑色

红黑树与AVL树一样同为二分搜索树,红黑树又称为是保持“黑平衡”的二叉树,红黑树最大高度为:2logn,红黑树由这么几个独特的特征:

1、每个节点或黑或红

2、根节点为黑色

3、每个叶子节点(最后的空节点)都为黑色

4、如果一个节点为红色,则他孩子节点全为黑色

5、从任意节点到叶子节点,经过的黑色节点为一样多的

6、所有红色节点都向左倾斜

再回首数据结构—红黑树(一)

在之前的二叉搜索树中我们在实现的节点结构中定义了用于存储元素的e、用于存放左子树的left、用于存放右子树的right等对象,而在AVL树中比二叉搜索树有所不同由于AVL需要维护左右子树的节点高度所以多了一个元素height用于存放节点的高度;

红黑树也是基于之前二叉搜索树变体而来的,在红黑树中节点也只比二叉搜索树多一个元素,二叉搜索树的节点由以下元素组成:

e :用于存储节点元素

left:用于存储左子树

right:用于存储右子树

color:用于标志节点颜色,节点是红色或黑色

红黑树的代码定义:

type RBT struct {
    root    *RBTNode
    size    int
    compare Comparable
 }

 type RBTNode struct {
    e     interface{}
    left  *RBTNode
    right *RBTNode
    color bool
 }

根据红黑树的特性、定义可知:

1、大小为N的红黑树其高度不超过2logN

2、最坏情况下插入、查找元素的时间复杂度为:2logN

3、平均情况下插入、查找元素的平均复杂度为:logN

这里只简单介绍了红黑树的相关概念,下面将从代码实现的角度具体分析红黑树的实现;


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

雷军传

雷军传

陈润 / 华中科技大学出版社 / 2013-10-1 / 35

讲述雷军20年中从打工者到职业经理人,再到投资家、创业家的职场历程。 这种经历国内绝无仅有,国内有媒体将其比作乔布斯,事实上他比“乔帮主”更精彩,乔是被董事会赶出苹果,而雷从未失败过。 本书以雷军的职场经历和金山、小米的发展历程和雷军投资故事为主线,以时间为脉络,将其20 年商海沉浮的经历完美展现。 通过故事总结和阐释,讲透用人、管理、营销、战略、投资等全方位的经管知识,从雷军身......一起来看看 《雷军传》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试