set/multiset的简介
set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。
set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。
set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。
multiset与set的区别:set支持唯一键值,每个...
分类:
其他好文 时间:
2015-07-08 22:43:41
阅读次数:
171
map/multimap的简介
map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。
map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。
map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。
map可以直接存取key所对应的val...
分类:
其他好文 时间:
2015-07-08 22:43:06
阅读次数:
184
红 - 黑树是一种平衡二叉树被广泛用于,但对于很多人谁是新算法,红黑树实在是太复杂,看之前July博文,觉得自己的写作非常具体的。不过还是有点乱。不能急。要每天看一点点,所以我把插入和删除分开来写,仅仅要看懂并记住插入后是如何操作的,那么删除也就easy了。红黑树的规则:性质1. 节点是红色或黑色。...
分类:
其他好文 时间:
2015-07-08 12:33:34
阅读次数:
225
1.红黑树性质
红黑树是一种自平衡二叉查找树(BST),其中的每个节点都遵守下面的规则:
性质1. 节点是红色或黑色
性质2. 根节点是黑色
性质3. 所有叶子都是黑色(叶子是NIL节点)
性质4. 如果一个节点是红的,则它的两个儿子都是黑的。 (即不可能存在相邻的连个红色节点。红色节点不能有红色父节点或红色孩子节点)
性质5. 从任一节点到其叶子的所有简单路径都包含相同数目的黑色节点...
分类:
其他好文 时间:
2015-07-08 02:07:48
阅读次数:
174
红黑树与二叉平衡树区别:http://bbs.chinaunix.net/thread-3760493-1-1.html红黑树:http://www.cnblogs.com/skywang12345/p/3245399.html (插入部门,有问题,case2,case3叔叔节点为红色啊)http....
分类:
其他好文 时间:
2015-07-05 21:16:43
阅读次数:
126
容器的数据结构同样是采用红黑树进行管理,插入的元素健位不允许重复,所使用的节点元素的比较函数,只对元素的健值进行比较,元素的各项数据可通过健值检索出来。map容器是一种关联容器,实现了SortedAssociative Container、Sorted Associative Container和Unique Associative Container概念的接口规范。
map技术原理
图中所示...
分类:
其他好文 时间:
2015-07-05 13:49:07
阅读次数:
116
前面我们学习二叉搜索树的时候发现在一些情况下其高度不是很均匀,甚至有时候会退化成一条长链,所以我们引用一些”平衡”的二叉搜索树。红黑树就是一种”平衡”的二叉搜索树,它通过在每个结点附加颜色位和路径上的一些约束条件可以保证在最坏的情况下基本动态集合操作的时间复杂度为O(nlgn).下面会总结红黑树的性质,然后分析红黑树的插入操作,并给出一份完整代码。先给出红黑树的结点定义:#define RED 1...
分类:
编程语言 时间:
2015-07-05 12:28:44
阅读次数:
245
前面我们学习二叉搜索树的时候就发现在一些情况下其高度不是很均匀,甚至有时候会退化成一条长链。红黑树也是一种”平衡”的二叉搜索树,它通过在每个结点附加颜色位和路径上的一些约束条件可以保证在最坏的情况下基本动态集合操作的时间复杂度为O(nlgn).下面会总结红黑树的性质,然后分析红黑树的插入操作,并给出一份完整代码。先给出红黑树的结点定义:#define RED 1
#define BLACK 0///...
分类:
编程语言 时间:
2015-07-05 09:36:48
阅读次数:
122
与set集合容器一样,multiset多重集合容器也使用红黑树组织元素数据,只是multiset容器允许将重复的元素健值插入,而set容器则不允许。
set容器所使用的C++标准头文件set,其实也是multiset容器的头文件,因为这个set头文件也包含multiset所需的红黑树和自身实现文件,只要用宏语句“#include”包含进来,就可对multiset容器的应用代码进行编译。
创建m...
分类:
其他好文 时间:
2015-07-04 14:00:10
阅读次数:
110
set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据。每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需要指定具体的插入位置,而按元素在树中的关联关系,进行位置检索和插入,元素的删除亦...
分类:
其他好文 时间:
2015-07-03 20:44:39
阅读次数:
158