STL之deque容器详解 Deque 容器 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容。deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是,deque还 ...
分类:
其他好文 时间:
2018-04-22 16:01:22
阅读次数:
167
List集合有三个常用的实现类 1.ArrayList: 底层部分使用数组实现,遍历熟读块。中间插入删除元素速度慢,线程不安全。 2. Vector: 底层部分同样使用数组实现,线程不安全 3.LinkedList :采用双向链表实现。元素的空间不连续。每个元素除了存放数据以外,还要存放上一个和下一 ...
分类:
编程语言 时间:
2018-04-22 14:47:53
阅读次数:
161
LinkedList LinkedList底层是基于双向链表实现的 内置插入删除方法 linkFirst & linkLast unlinkFirst & unlinkLast linkBefore unlink 源码分析 小结 1. ArrayList底层为数组,查找操作复杂度为O(1),添加删除 ...
分类:
其他好文 时间:
2018-04-21 16:10:32
阅读次数:
211
模板类list是一个容器,所控制的长度N的序列是一个有着N个节点的双向链表。每个节点存储一个单独的元素,一个前驱指针,一个后继指针。list的节点存储在非连续的存储空间中,由于其结构的原因,list的插入、删除、替换等操作速度很快,但元素的查找和随机存取等操作就很慢,需要从头节点一个节点一个节点的往 ...
分类:
编程语言 时间:
2018-04-16 23:59:47
阅读次数:
360
设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。注意: 允许出现重复元素。 insert(val):向集合中插入元素 val。 remove(val):当 val 存在时,从集合中移除一个 val。 getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与 ...
分类:
其他好文 时间:
2018-04-15 19:41:51
阅读次数:
220
定义:每个节点的左右子树的高度最多差1的二叉查找树。(空树的高度为-1)。 AVL树保证树的高度只比log(N)多一点,因此除了插入删除外,可以保证所有的树操作都以O(logN)执行。 当插入一个节点的时候,只有那些从插入点到根节点路径上的点的平衡性可能被破坏,在最深的不满足平衡性的节点进行平衡操作 ...
分类:
其他好文 时间:
2018-04-12 22:15:39
阅读次数:
155
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 ac代码: ...
分类:
其他好文 时间:
2018-04-12 19:53:55
阅读次数:
137
栈的链式存储结构(简称链栈) 一般把栈顶放在单链表的头部,对于链栈来说不需要头结点,且基本不存在栈满的情况,除非是内存已经没有可用的空间了,对空栈来说链表原定义是头指针指向空,链栈的空就是top = null 链栈的操作和绝大多数单链表相同,只是插入和删除特殊一些 栈的链式存储结构——进栈和出栈操作 ...
分类:
其他好文 时间:
2018-04-10 18:45:17
阅读次数:
172
HashMap实现原理,利用数组和链表存储元素 数组:存储区间连续,占用内存严重,寻址容易,插入删除困难 链表:存储区间离散,占用内存比较宽松,寻址困难,插入删除容易 hashmap综合应用了这两种数据结构,实现了寻址容易,插入删除也容易 HashMap结构示意图: 实现原理:用一个数组来存储元素, ...
分类:
其他好文 时间:
2018-04-10 10:54:34
阅读次数:
176
B树和B+树 简介:本文主要介绍了B树和B+树的插入、删除操作。写这篇博客的目的是发现没有相关博客以举例的方式详细介绍B+树的相关操作,由于自身对某些细节也感到很迷惑,通过查阅相关资料,对B+树的操作有所顿悟,写下这篇博客以做记录。由于是自身对B+树的理解,肯定有考虑不周的情况,或者理解错误的地方, ...
分类:
其他好文 时间:
2018-04-09 23:19:19
阅读次数:
410