数据结构
文章平均质量分 50
Kblacksmith
守恒
展开
-
后缀表达式树
水平有限,代码粗糙。。。。。。。构造表达式树后用中序遍历输出结果。#include #include #include #include #include using namespace std;const int MAX =100;struct node{ char data; struct node *l;原创 2015-09-01 12:56:34 · 753 阅读 · 0 评论 -
大整数的加乘多项式运算
水平有限,代码粗糙。。。。。。。。。#include #include #include #include #include using namespace std;char str[10][100010];char a[50];char ts[50];const int N=100010;stack Stack;stack SS;voi原创 2015-09-01 12:50:38 · 401 阅读 · 0 评论 -
树的括号表示法
树的括号表示法: 先将根结点放入一对圆括号中,然后把它的子树按由左而右的顺序放入括号中,而对子树也采用同样方法处理:同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。例如下图可写成如下形式 (a(b,c,d,e)) a / | | \ b c d e现在给定一个多叉树的括号原创 2015-10-10 16:31:40 · 3750 阅读 · 0 评论 -
HOLEDOX MOVING (POJ1324)
在这里我们将蛇的状态描述为如下三元组(x,y,sta),其中 (x,y)是蛇头的坐标,state 记录的是身体的状态,由于身体最长为七段,每一段相对于前一段只有上下左右四种状态,仅需要两位表示,则身体所有块的状态最多需要 7×2=14 位二进制数表示,则我们可以构建矩阵vis[x][y][sta] 来保存访问过的状态,以避免重复访问相同的状态,后面的工作就是传统的广搜过程了; 代码很容易看得懂#i原创 2015-10-31 00:41:02 · 346 阅读 · 0 评论 -
poj2449 Remmarguts' Date
这题题意为给一张有向图,还有起点s,终点e,求s到e的第k短的路。思路:此题要用到A*算法,先求反向的从终点e到各个点的最短路径,定义结构体struct node{ int p,h,g; bool operator <(const node a)const { return g+h<a.g+a.h; }}即p为该点,h为从原点走到p的已花费代价,g为预估到终点的花费,即p到终原创 2015-11-01 15:08:38 · 391 阅读 · 0 评论 -
类包装的优先队列 小顶堆实现
最近实习时比较了一下链表实现的优先队列和用堆实现的优先队列时间的差距。。发现数据大了后差的真是超多。。 数据量到了100000后前者需要25秒左右的时间,而后者只需0.03秒左右。(当然与机房实习时的机子烂也有关系)#include <iostream>#include <algorithm>using namespace std;template<class T>class Vector原创 2016-01-04 09:42:30 · 591 阅读 · 0 评论 -
用最小堆实现优先队列
最近在复习数据结构,文章所使用c++,因时间仓促,使用的是较简单的C风格,稍作改动即可面向对象操作。代码粗糙:#include <iostream>#include <algorithm>using namespace std;int *heap;int n;void heapadjast(int start,int length){ int cur=start; int原创 2015-12-02 23:29:49 · 1562 阅读 · 0 评论