heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
模块数据的导出和打印(1)
一般管理软件的最终目的是要能输出数据,包括grid多条记录的导出和打印以及单条记录的导出和打印。对于这二种方式的导出和打印,我的设计思路是以下的方式。
一、grid数据的导出和打印。
grid数据的导出,我的设计是按照grid的字段分组和列的样式来导出。每个grid列表方案都可以按此方案来导出数据。即你看到的grid...
分类:
其他好文 时间:
2014-07-22 23:04:13
阅读次数:
288
seo第一点,外链。seo对外链的要求必须是高质量,稳定的外链,只要能够持续的找到稳定的高质量的外链,那seo才是真正的尖端,超高质量,极度稳定缺一不可,如果都是低质量,对网站的权重没有太大意义,而如果是不稳定的外链,丢失率过大,那是必然被降权的。这一点我们必须注意。
seo第二点,内容和内部链接。seo的真正焦点就是:用户体验度,所以内容的质量是第一位,一个网站只要有高质量的内容并且是...
分类:
其他好文 时间:
2014-07-22 23:02:35
阅读次数:
332
UIScrollView的几个要点总结:从你的手指touch屏幕开始,scrollView开始一个timer,如果:
1. 150ms内如果你的手指没有任何动作,消息就会传给subView。
2. 150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。
3. 150ms内手指没有滑动,scrollView将...
分类:
其他好文 时间:
2014-05-01 18:07:00
阅读次数:
311
在memory.c里面,遇到一个宏定义,如下:
#define CODE_SPACE(addr) ((((addr)+4095)&~4095) start_code + current->end_code)
看的第一眼,不知道,第二眼,还是不知道,纠结了半天还是不知道。
睡了一晚,今天早上再看,嘿嘿,居然看懂了。。。
这个宏定义用于判断给定的addr线...
分类:
系统相关 时间:
2014-05-01 17:54:09
阅读次数:
516
一、 序言
上一篇文章中,给出了 trie 树的一个实现。可以看到,trie 树有一个巨大的弊病,内存占用过大。
本文给出另一种数据结构来解决上述问题---- Ternary Search Tree (三叉树)
二、数据结构定义
Trie 树中每个节点包含了 26 个指针,但有很大一部分的指针是 NULL 指针,因此浪费了大量的资源。
一种改进措施就是,以一棵树来代替上述的指针数组。...
分类:
其他好文 时间:
2014-05-01 17:49:30
阅读次数:
326
题目:
Given a sorted (increasing order) array, write an algorithm to create a binary tree with minimal height.
翻译:
给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。
思路:
要使二叉树的高度最小,则要尽量使其左右子树的节点数目相当,自然就考虑到将其构造成为二叉排序树,且将有序数组的中间大的数作为根节点,这样得到的二叉树的高度便是最小的。...
分类:
其他好文 时间:
2014-05-01 17:48:45
阅读次数:
321
智慧城市,在中国的北海边再画一个圈
——大连“中国首届智慧城市协同创新峰会”请你带好笔
这可能是中国第二次大规模地改变城市印象。从1979年,“在中国的南海边画了一个圈”,用三十多年的时间,中国完成了从传统城市到现代城市的跨越,繁荣、机会、财富、梦想演变成激动人心的中国奇迹和城市骄傲。但随之而来,城市化进程也引发诸多的问题,社会保险、医疗、就业、安防、交通……所有的这些问题都为生活于此的每个城...
分类:
其他好文 时间:
2014-04-30 22:33:39
阅读次数:
261
原题链接: http://oj.leetcode.com/problems/unique-binary-search-trees/
这道题要求可行的二叉查找树的数量,其实二叉查找树可以任意取根,只要满足中序遍历有序的要求就可以。从处理子问题的角度来看,选取一个结点为根,就把结点切成左右子树,以这个结点为根的可行二叉树数量就是左右子树可行二叉树数量的乘积,所以总的数量是将以所有结点为根的可行结果...
分类:
其他好文 时间:
2014-04-30 22:12:39
阅读次数:
244
AbstractQueuedSynchronizer,简称AQS,是java.util.concurrent包的synchronizer的基础框架,其它的synchronizer(包括Lock、Semaphore、CountDownLatch、FutureTask等)都是以它作为基础构建的,这篇文章我将对AQS的框架结构作出介绍,包括它对同步状态的管理,功能流程,等待队列的管理等,并涉及到一些实现...
分类:
其他好文 时间:
2014-04-30 22:12:38
阅读次数:
421