我们先来看一张之前整理过的一张二叉树的链式存储结构
1、每个数据域,都有2个指针域,分别指向该节点的左孩子、右孩子,但是每个节点前驱、后继,要知道的话需要遍历整棵树,这在时间上耗费很大。
2、另外,在叶子节点中,我们可以看到如图,每个节点都会浪费2块存储空间,N个节点的二叉树,2N个指针域,连接线为2N-1,那么会有2N-(N-1) = N+1个指针域浪费掉。
为了优化以上2...
分类:
其他好文 时间:
2014-05-15 13:30:19
阅读次数:
283
进程:程序执行的一个实例,充分描述程序已经执行到何种程度的数据结构的集合.目的:担当资源分配的实体.每个线程是进程的一个执行流,可以由内核独立调度.标示一个进程进程和进程描述符一一对应.并且一个线程组公用一个PID.进程描述符处理:
Linux吧内核态的进程堆栈和紧挨进程描述符的小数据结构threa...
分类:
其他好文 时间:
2014-05-15 12:05:28
阅读次数:
261
中断信号的作用.使CPU转而去运行正常控制流之外的代码.为了它.就要在内核态堆栈保存程序计数器的当前值(eip和cs寄存器).并把与中断类型相关的一个地址放在程序计数器.中断处理与进程切换的差异:由中断或异常处理程序执行的代码不是一个进程,而是内核控制路径.代表中断发生时正在运行的进程执行.其比进程...
分类:
其他好文 时间:
2014-05-15 11:36:26
阅读次数:
304
小学生放学都是要按顺序排队的,一个接一个,每个小学生的前后位置是固定的,这样便于迅速清点。其实这就是一个线性表,从这件事里我们就可以找到很多关于线性表的特性,如1、线性表是一个序列,它是有顺序的(排队)2、第一个元素无前驱,最后一个无后继,其他每个元素都有一个前驱和后继(一个接一个)3、元素是有限的...
分类:
其他好文 时间:
2014-05-15 10:36:45
阅读次数:
334
HashSet底层数据结构是哈希表,哈希表按哈希值来存储,HashSet集合中有若干个存储区域,而每个对象可以计算出一个hash值,系统会自动将这个值分组,对应若干个存储区域。当添加新元素时,系统会计算出这个元素的hash值,然后跟存储区域的每一个元素进行比较,如果不相同则添加..
分类:
其他好文 时间:
2014-05-15 08:54:32
阅读次数:
215
平台:VS2010版本:1.04我们先看看消息队列的数据结构:typedefstructRAW_QUEUE
{
RAW_COMMON_BLOCK_OBJECTcommon_block_obj;
RAW_MSG_Qmsg_q;
RAW_VOID(*queue_send_notify)(structRAW_QUEUE*queue_ptr);
}RAW_QUEUE;RAW_MSG_Q:typedefstructRAW_MSG_Q{
RAW_VOID**queue_sta..
分类:
其他好文 时间:
2014-05-15 08:35:51
阅读次数:
318
当年实现自己的共享内存模板的时候,map和set的没有实现,本来考虑用一个AVLTree作为底层实现的,为啥,因为我当时的数据结构知识里面我和RBTree不熟,只搞过AVLTree,但当时我一直没有看过删除如何实现。结果Scottxu跳出来,参考STLport的实现,迅速用RBTree搞掂了。搞得这...
分类:
其他好文 时间:
2014-05-15 07:44:44
阅读次数:
235
栈 队列 优先级队列
本章涉及到的三种存储数据类型:栈 队列 优先级队列
本章涉及到的存储数据类型是算法构思的辅助工具,而不仅仅是存储数据的工具。数据结构的生命周期比较短,在程序结束时,对应的数据结构的生命周期随之结束。
栈 队列 优先级队列是比较抽象的数据结构,通过接口对三种数据结构进行定义和实现,而实现的过程对用户来说是屏蔽的。
栈 (后进先出)
栈只允许访问一个数据项,即最后...
分类:
其他好文 时间:
2014-05-15 01:11:25
阅读次数:
179
Iterator:迭代器。其实就是集合取出元素的方式,每个容器的数据结构不一样,所以他们存取的方式不一样,具体事项方法不一样,具体实现方法不一样,每个集合都具备取出方式,对于取出这个动作不足以用一个函数来描述,需要用多个功能来体现,一般情况将多个功能封装到一个对象..
分类:
编程语言 时间:
2014-05-15 00:22:05
阅读次数:
306
最近把一个用eclipse构建的项目,加上了Gradle脚本,用它来编译。虽然最后编译是显示BUILD SUCCESSFUL,但是在编译过程中,却打印出一大堆栈信息,似乎是在编译我自定义的注解时出现的异常。
打印的栈信息前面部分如下:
:assemble
:lint
Failed converting ECJ parse tree to Lombok for file E:\code\git\...
分类:
其他好文 时间:
2014-05-15 00:00:10
阅读次数:
516