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
整理自统计之都论坛
方法一 使用strsplit函数
a <- "aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg"
b <- strsplit(as.character(a),"ag")
length(b[[1]]) - 1 ##子字符串"ag"的出现个数
方法二 使用正则式函数
a <- "aggcacgg...
分类:
其他好文 时间:
2014-07-22 23:02:52
阅读次数:
288
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
面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。
在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。
本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。...
分类:
编程语言 时间:
2014-04-30 22:11:39
阅读次数:
356