1基本数据结构基本数据结构有:数组。顺序存储,可随机访问。有最快的查询速度,插入、删除元素非常麻烦。链表。存储相对位置,可按节点依次访问。查询较慢,插入、删除节点较快。有单向链表、双向链表等。块状链表。数组和链表结合。栈和队列。树。有二叉树、平稀树、B树等。堆。有顺序的树。散列表。哈希表,即map。...
分类:
其他好文 时间:
2014-07-10 12:44:03
阅读次数:
164
把检测出的边缘像素组装成轮廓 —— cvFindContours OpenCV 使用内存存储器来统一管理各种动态对象的内存。内存存储器在底层被实现为一个有许多相同大小的内存块组成的双向链表 内存储器可以通过四个函数访问 : cvCreateMemStorage(创建一个内存存储器,0采用默认大小) ...
分类:
其他好文 时间:
2014-06-27 10:58:12
阅读次数:
465
分析:
还是二叉树遍历模板的改造问题,对于二叉搜索树,中序遍历的结果是有顺序的。题目的要求无非是将中序遍历的结点访问结果链接起来,至于双向链表,通过复用树结点的left 和 right 指针就可以完成。最直接的就是我们可以把中序遍历中访问到的每个结点都放入到个队列里,然后将队列的元素链接起来,但是题目不允许用额外的空间。
想想中心遍历,遍历顺序是 左 --根---右,那么中序遍历的第一个访问结...
分类:
其他好文 时间:
2014-06-27 07:56:13
阅读次数:
341
Ziplist是用字符串来实现的双向链表,对于容量较小的键值对,为其创建一个结构复杂的哈希表太浪费内存,所以redis 创建了ziplist来存放这些键值对,这可以减少存放节点指针的空间,因此它被用来作为哈希表初始化时的底层实现。
分类:
其他好文 时间:
2014-06-25 19:06:54
阅读次数:
187
LinkedList是List接口的子类,它底层数据结构是双向循环链表。LinkedList还实现了Deque接口(double-end-queue双端队列,线性collection,支持在两端插入和移除元素).所以LinkedList既可以被当作双向链表,还可以当做栈、队列或双端队列进行操作......
分类:
其他好文 时间:
2014-06-25 11:50:14
阅读次数:
251
vector底层采用的是一个数组来实现,list底层采用的是一个环形的双向链表实现,而deque则采用的是两者相结合,所谓结合,并不是两种数据结构的结合,而是某些性能上的结合。我们知道,vector支持随机访问,而list支持常量时间的删除,deque支持的是随机访问以及首尾元素的删除。...
分类:
其他好文 时间:
2014-06-25 08:17:41
阅读次数:
383
相对于数组来说: 优点: 通过索引(数组下标)快地访问数组元素; 缺点: 插入/删除元素需要对数组进行调整, 效率低;而链表: 优点:插入/删除速度快而且用对整链表进行调整; 缺点:只能进行顺序访问能随机访问(像数组样用下标);所链表些需要快速插入/删除而太关心或者需要随机访问情况下使用.u...
分类:
其他好文 时间:
2014-06-25 00:49:02
阅读次数:
247
题目:输入一棵BST,将该BST转换成一个排序的双向链表要求不能创建新的结点,只能调整树中结点指针的指向在BST中,左子节点的值 小于父节点的之, 父节点的值小于 右子节点的值因此我们在转换成有序的双向链表时,原先指向左子节点的指针调整为链表中指向前一个结点的指针原先指向右子节点的指针调整为链表中指...
分类:
其他好文 时间:
2014-06-24 13:38:31
阅读次数:
243
采用二叉树结合双向链表实现了限制长度的最优Huffman编码...
分类:
其他好文 时间:
2014-06-22 19:54:58
阅读次数:
221
list的底层采用数据结构是环形的双向链表, 相对于vector容器,list容器插入和删除操作付出的代价要比vector容器小得多,但是list带有链表的天生弱点,就是不支持随机访问。从内置的迭代器角度分析,vector容器对应的迭代器为随机访问迭代器,而list容器内置的迭代器则为双向迭代器。...
分类:
其他好文 时间:
2014-06-22 19:19:11
阅读次数:
163