数据结构
文章平均质量分 64
追智的
我不去想是否能够成功,既然选择了远方,就注定要风雨兼程。。。
展开
-
树状数组之插点问线
假设数组a[1..n],那么查询a[1]+...+a[n]的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log级别。来观察这个图:树状数组的结构图令这棵树的结点编号为C1,C2...Cn。令每个结点的值为这棵树的值的总和,那么容易发现:C1 = A1C2 = A1 + A2C3 = A3C原创 2013-11-26 19:59:56 · 490 阅读 · 0 评论 -
位向量法排序
如何给包含n个正整数的文件排序,其中每个整数只能出现一次,每个整数小于n n=10000000可以用多趟排序,也可以用位向量 如果把空间严格限制为1MB那么可以用位向量+多趟排序如果内存限制在1MB那么只要两趟排序即可,先排【0-5000000) 再排【5000000-10000000)即可生成随机数程序:#include #include #include #i原创 2015-09-01 23:23:14 · 484 阅读 · 0 评论 -
生成1-n中的k个不相同的随机数
生成1-n中的k个不相同的随机数原创 2015-09-01 22:57:44 · 383 阅读 · 0 评论 -
二叉树的遍历
二叉树的遍历分前序、中序、和后序。下面分别给出代码:前序:void preOrder(BiTree T){//前序 if(T) { putchar(T->data); preOrder(T->lChild); preOrder(T->rChild); }}前序 非递归版:void preOrder2(BiTree T){//前序 非递归版 stack原创 2015-09-03 00:10:05 · 241 阅读 · 0 评论 -
前缀式计算
前缀式计算时间限制:1000 ms | 内存限制:65535 KB难度:3描述先说明一下什么是中缀式:如2+(3+4)*5这种我们最常见的式子就是中缀式。而把中缀式按运算顺序加上括号就是:(2+((3+4)*5))然后把运算符写到括号前面就是+(2 *( +(3 4) 5) )把括号去掉就是:+ 2 * + 3 4 5原创 2013-11-26 21:50:33 · 478 阅读 · 0 评论 -
线索二叉树
n个结点的二叉链表中含有n+1(2n-(n-1)=n+1)个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。 二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构,使每个结点都有了唯一前驱和后继(第一个结点无前驱,最后一个结点无后继)。对于二叉树的一个结点,查找其左右子女是方便的,其前驱后继只有在遍历中得到原创 2015-09-03 23:51:01 · 650 阅读 · 0 评论 -
二叉搜索树与双向链表
二叉搜索树与双向链表原创 2015-11-05 21:29:01 · 286 阅读 · 0 评论 -
数组中只出现一次的数字
数组中只出现一次的数字原创 2015-10-31 15:40:22 · 285 阅读 · 0 评论