C++ 多重集的使用多重集当中的数据映射关系将不是前面的一对一的关系,而是一对多,也就是可以在容器当中插入具有相同key的实例。关于组织方式,LZ进行了下面的大胆的预测。第一、底层的数据组织方式如果是红黑树,那么就会将具有相同key的数据连续存放,也就是在红黑树的中序遍历中他们是挨着的。第二、如果是...
分类:
编程语言 时间:
2015-06-09 19:07:30
阅读次数:
153
这道题目的关键词是suffix,suffix是后缀、词尾的意思,因此这道题目的难度有所降低,可以通过从尾部向前检索的方法来找到共同部分,但是题目所给的显然是单向链表结构,难以倒着查找,如果使用此方法还需要反转链表,因此我们可以考虑另一种方法。
STL中有红黑树容器set,我们首先建立一个容纳int的set,然后遍历第一个单词的链表,把所有结点的地址压入set,然后在对第二个链表遍历时,不断的把当前结点的地址从set中进行查找,如果找到了,说明到达了公共部分,直接输出此地址,一直没找到,则说明无公共部分。...
分类:
其他好文 时间:
2015-06-09 13:47:43
阅读次数:
163
1.性质 红黑树是一种二叉查找树,但是每个节点增加一个表示结点颜色(红或黑)的字段,并且满足一下条件:每个节点或是红的,或是黑的根节点是黑的每个叶结点(NIL)是黑的如果一个节点是红的,则它的两个儿子都是黑的对每个节点,从该结点到其子孙节点的所有路径上包含相同数目的黑节点 为方便处理边界条件,我.....
分类:
其他好文 时间:
2015-06-08 21:29:12
阅读次数:
131
TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap 实现了NavigableMap,Cloneable和Serializable接口。TreeMap的基本操作 cont...
分类:
其他好文 时间:
2015-06-08 19:15:11
阅读次数:
131
set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名...
分类:
其他好文 时间:
2015-06-07 11:04:35
阅读次数:
107
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平...
分类:
其他好文 时间:
2015-06-03 21:11:13
阅读次数:
109
动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂...
分类:
其他好文 时间:
2015-06-02 19:44:10
阅读次数:
249
场景:
1. map在查找非数值索引(数值非重复索引可以使用vector)的对象时是高效率的,因为用的红黑树的实现,查找和插入都是logarithmic time 效率很高.
2.map可以说是很实用的数据结构.
3.使用multimap可以存储重复key,使用场景就是1对多的情况,比如一个联系人对应多个分组....
分类:
编程语言 时间:
2015-05-31 20:11:55
阅读次数:
169
目前正在编写算法导论答案,欢迎大家follow me at mygithub
刚完成第9章,中位数和顺序统计学
正在编写第13章,红黑树
想要参与的朋友可以告诉我想要编写的章节,开个branch给你~~~~~~...
分类:
编程语言 时间:
2015-05-30 22:43:18
阅读次数:
328
set-概述: 集合Set是一个容器,它其中所包含的元素的值是唯一的。集合中的元素按一定的顺序排列,并被作为集合中的实例。一个集合通过一个链表来组织,其具体实现采用了红黑树的平衡二叉树的数据结构。在插入操作和删除操作上比向量(Vector)快,但查找或添加末尾的元素时会有些慢。 set c产生一个....
分类:
其他好文 时间:
2015-05-30 18:07:02
阅读次数:
142