set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名 ...
分类:
编程语言 时间:
2018-03-06 20:16:43
阅读次数:
222
对红黑树的操作在最坏的情形下花费O(logN)时间,相对AVL树来说,性质比较多但是换取了插入和删除时少量的旋转操作。
...
分类:
其他好文 时间:
2018-03-04 20:00:13
阅读次数:
156
二叉查找树(一)之 图文解析 和 C语言的实现 概要 本章先对二叉树的相关理论知识进行介绍,然后给出C语言的详细实现。关于二叉树的学习,需要说明的是:它并不难,不仅不难,而且它非常简单。初次接触树的时候,我也觉得它似乎很难;而之所产生这种感觉主要是由于二叉树有一大堆陌生的概念、性质等内容。而当我真正 ...
分类:
其他好文 时间:
2018-02-24 14:55:05
阅读次数:
243
我看正解已经有一大堆了,我就发个不太正经的吧 最近不会高级数据结构的蒟蒻在搞STL,搞完普通平衡树后就看到了这道题,本来想用黑科技pb_ds中的红黑树做的,发现已经有大佬贴了一篇。set的做法也有人发了。 然后蒟蒻的我又想出一个歪法 暴力模拟!!! 你要知道: 首先介绍个STL中应该挺少人知道的函数 ...
分类:
其他好文 时间:
2018-02-24 13:20:28
阅读次数:
170
红黑树的介绍 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。 红黑树的每个节点上都有存 ...
分类:
编程语言 时间:
2018-02-23 16:03:31
阅读次数:
186
R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。 红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL ...
分类:
其他好文 时间:
2018-02-23 16:00:49
阅读次数:
179
前言:通常我们会遇到一些问题,采用一些标准的数据结构,如双链表、散列表或二叉查找数时,不能够满足操作要求,需要对这些数据结构进行扩张,添加一些额外的信息使得能够完成新的操作。附加的信息需要对数据结构的某些操作进行调整,这个是非常关键的步骤,决定着数据结构扩张是否能够实现。本章主要讨论了红黑树结构的扩 ...
分类:
其他好文 时间:
2018-02-23 16:00:29
阅读次数:
134
1. 定义: 平衡二叉树具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。常用算法有红黑树、AVL、Treap、伸展树等。其高度一般都良好地维持在O(log(n)),大大降低了操作的时间复杂度。 2. 判断二叉树是否平衡: 1. 定义: 平衡二 ...
分类:
其他好文 时间:
2018-02-20 12:24:36
阅读次数:
129
红黑树是一种自平衡的二叉查找树,除了符合二叉查找树的基本性质外,它还具有下列附加特性: 1.节点是红色或黑色。 2.根节点是黑色。 3.每个叶子节点都是黑色的空节点(NIL节点)。 4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 5.从任一节点到其每个叶 ...
分类:
其他好文 时间:
2018-02-17 19:41:34
阅读次数:
330
简述一下问题:假设有一颗词典二叉树,我们从中查找需要的单词,使用红黑树或平衡树这样的数据结构总是可以在O(lgN)时间内进行查找,但单词的出现频率是不同的,我们给每个单词加上一个搜索概率,然后通过这些带有概率的节点计算出整棵树的搜索期望E(T),找到一个最优节点作为根节点,重新建立一颗二叉树,称为最 ...
分类:
其他好文 时间:
2018-02-17 10:24:48
阅读次数:
115