数据结构
文章平均质量分 77
深海沧澜夜未央
这个作者很懒,什么都没留下…
展开
-
课程设计 栈之 后缀表达式求值 中缀表达式转后缀表达式
题目描述为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为后缀{运算符在后,如X/Y写为XY/表达式。在这样的表示中可以不用括号即可确定求值的顺序,如:(P+Q)*(R-S) → PQ+RS-*。后缀表达式的处理过程如下:扫描后缀表达式,凡遇操作数则将之压进堆栈,遇运算符则从堆栈中弹出两个操作数进行该运算,将运算结果压栈,然后继续扫描,直到后缀表达式被扫描完毕为止,此时栈底元素即为该后原创 2017-12-15 14:49:03 · 2202 阅读 · 0 评论 -
POJ - 2559 Largest Rectangle in a Histogram (单调栈与区间问题)
A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different heights. For example, the figure on the left shows原创 2018-01-01 15:27:23 · 898 阅读 · 0 评论 -
POJ 2796 Feel Good (单调栈 区间最大值)
Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how good or bad days influent people's memories about some period of life. A原创 2018-01-02 09:21:02 · 1043 阅读 · 0 评论 -
栈 模板
#include #include #include using namespace std;#define STACK_INIT_SIZE 10#define STACK_INCREMENT 2#define OVERFLOW 0#define TRUE 1#define FALSE 0#define ERROR 0#define OK 1typedef int Statu原创 2017-06-05 23:56:30 · 463 阅读 · 0 评论 -
二叉树 队列实现 模板
#include #include #include //在本程序中空==0using namespace std;#define FLASE 0#define TRUE 1#define ERROR 0#define OK 1typedef int TElemType;typedef int Status;typedef struct BiTNode{ TEl原创 2017-06-07 13:01:00 · 819 阅读 · 0 评论 -
二叉树 链表实现 模板
#include #include #include using namespace std;#define FLASE 0#define TRUE 1typedef int TElemType;typedef int Status;typedef struct BiTNode{ TElemType data; //结点的值 BiTNode *lchild, *r原创 2017-06-06 16:58:50 · 455 阅读 · 0 评论 -
队列模板
#include #include #include using namespace std;#define OVERFLOW 0#define TRUE 1#define FLASE 0#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;typedef struct QNode{ Q原创 2017-06-01 19:09:37 · 607 阅读 · 0 评论 -
赫夫曼编码
#include #include #include #include using namespace std;#define MAX 100000000typedef char **HuffmanCode; //动态分配数组存储赫夫曼编码表typedef struct{ unsigned int weight; unsigned int parent,lchild原创 2017-06-08 18:29:34 · 504 阅读 · 0 评论 -
POJ3250 牛的视野(单调栈)
题意:一群高度不完全相同的牛从左到右站成一排,每头牛只能看见它右边的比它矮的牛的发型,若遇到一头高度大于或等于它的牛,则无法继续看到这头牛和后面的其他牛的发型。给出这些牛的高度,要求每头牛可以看到的牛的数量的和。思路:计算每头牛可以看到牛的头数,可以等效于每头牛可以被看到的次数从左到右依次读取当前牛的高度,从栈顶开始把高度小于或等于当前牛的高度的那些元素删除,此时栈中剩下的元素的数原创 2017-12-29 16:06:16 · 1237 阅读 · 0 评论 -
二叉树 表达式树的值 .
题目描述读入表达式树的先序遍历字符串,求其值。运算符只可能是加减乘除,保证输入的每个子表达式树的结果都是整数值且可以用C语言的int类型表达。输入输入由多组测试数据组成。每组数据包含一行字符串,即表达式树的先序遍历序列,字符串长度大于0且不超过100。输出见样例。样例输入+ 13 # # * 5 # # 9 # #* + 13 # # 5原创 2017-12-15 14:46:37 · 3155 阅读 · 0 评论 -
二叉树 24点游戏(Ⅰ) (浮点型精度问题!!!)
题目描述24点游戏的玩法是这样的:任取一幅牌中的 4张牌(不含大小王),每张牌上有数字(其中A 代表1,J 代表11,Q 代表 12,K代表13),你可以利用数学中的加、减、乘、除以及括号想办法得到24,每张牌只能用一次。例如有四张6,那么6+6+6+6=24,也可以6*6-6-6=24。但是有些牌是无法得到24的,比如两张 A 和两张2。 读入表达式树的先序遍历字符串, 这里的表达式原创 2017-12-15 14:45:04 · 2914 阅读 · 2 评论 -
线段树的入门级 总结
线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。 使用线段树可以快速的查找某一个节点在若干条线段中出转载 2017-06-14 08:50:11 · 319 阅读 · 0 评论 -
课程设计 带权路径长度 优先队列 随意取模的后果 .
题目描述给定n个权值作为n个叶子结点,构造哈夫曼树, 求其带权路径长度。输入输入由多组数据组成。 每组数据分成两行。第一行仅一个整数n(2输出对于每组测试数据,输出一行,即其对应哈夫曼树的带权路径长度对1000000007取模。样例输入47 5 2 485 29 7 8 14 23 3 11样例输出35271提示原创 2017-12-15 14:35:28 · 736 阅读 · 0 评论 -
课程设计 最小时间 最短路径 模板 .
题目描述 有多个城市组成一个铁路交通网络。任意两个城市之间有直连铁路,或者通过其他城市间接到达。给定某个城市,要求M时间内能到达任意指定的另一城市,求最小的M。输入每个测试用例由多行组成,第一行是整数n(1 其余行表示邻接矩阵A。A(i,j)的值如果是一个整数t,表示城市i与城市j有铁路直连,需要t时间到达另一方。如果A(i,j)的值为x,表明城市i与城市j之间没有直连铁路。很明原创 2017-12-15 14:39:10 · 1049 阅读 · 0 评论 -
课程设计 自来水管道 最小生成树树模版 .
领到了一个铺设校园内自来水管道的任务。校园内有若干需要供水的点,每两个供水点可能存在多种铺设路径。对于每一种铺设路径,其成本是预知的。 任务要求最终铺设的管道保证任意两点可以直接或间接的联通,同时总成本最低。输入每个测试用例由多行组成,第一行是两个整数P和R,P代表供水点数(1节点A编号 节点B编号 路径成本路径成本不超过100。测试用例之间有一空行分开。输入结束用P=0表原创 2017-12-15 14:40:47 · 2066 阅读 · 0 评论 -
课程设计 大爱线性表 线性表头尾处理 (strlen耗时的可怕)
不少参赛同学刚学数据结构,对线性表最是熟悉不过。这里我们给线性表增加两个特殊的操作,第一个是‘R’ 操作,表示逆转整个表,如果表长为L,原来的第i个元素变成第L-i+1个元素。第二个操作是‘D’,表示删除表的第一个元素,如果表为空,则返回一个“error”信息。我们可以给出一系列的‘R’ 和‘D’组合,例如“RDD”表示先逆转表,然后删除最前面的两个元素。本题的任务是给定表和一个操作串S,原创 2017-12-15 14:43:18 · 2378 阅读 · 0 评论 -
合并果子 (优先队列小根堆)
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1n−1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体原创 2017-12-29 16:41:21 · 870 阅读 · 0 评论