heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
1 #include 2 #include 3 #include 4 #define
INIT_STACK_SIZE 100 5 typedef struct 6 { 7 char * chOperator; 8 int dwtop; 9
}OPND;10 11 void I...
分类:
其他好文 时间:
2014-05-01 20:37:37
阅读次数:
373
1 #include 2 #include 3 #include 4 #define
INIT_STACK_SIZE 100 5 typedef struct 6 { 7 char * chOperator; 8 int dwtop; 9
}OPND;10 11 void I...
分类:
其他好文 时间:
2014-05-01 20:32:11
阅读次数:
366
递归:就是出现这种情况的代码: (或者说是用到了栈)解答树角度:在dfs遍历一棵解答树
优点:结构简洁缺点:效率低,可能栈溢出递归的一般结构:1 void f() {2 if(符合边界条件) {3 ///////4 return;5 }6 7
...
分类:
其他好文 时间:
2014-05-01 19:20:17
阅读次数:
343
标准库函数1算数运算stdlib.h2随机数stdlib.h3字符串转化stdlib.h4数学函数
math.h5日期和时间 time.h6信号 signal.h7打印可变参数列表stdarg.h8断言
assert.h抽象数据类型在数据结构中比较仔细运行时环境没看来自为知笔记(Wiz)
分类:
其他好文 时间:
2014-05-01 19:06:09
阅读次数:
305
一、 序言
上一篇文章中,给出了 trie 树的一个实现。可以看到,trie 树有一个巨大的弊病,内存占用过大。
本文给出另一种数据结构来解决上述问题---- Ternary Search Tree (三叉树)
二、数据结构定义
Trie 树中每个节点包含了 26 个指针,但有很大一部分的指针是 NULL 指针,因此浪费了大量的资源。
一种改进措施就是,以一棵树来代替上述的指针数组。...
分类:
其他好文 时间:
2014-05-01 17:49:30
阅读次数:
326
图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单。树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接。在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接。
图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始。
遍历
1.概念
从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问...
分类:
其他好文 时间:
2014-05-01 17:34:30
阅读次数:
321
面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。
在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。
本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。...
分类:
编程语言 时间:
2014-04-30 22:11:39
阅读次数:
356