题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为一个整数n(1
接下来有n行,每行开始有一个字母Ci。
Ci=’s’时,接下有一个数字k,代表将k压入栈。
Ci=’o’时,弹出栈顶元素。
输出:
对应每个测试案例中的...
分类:
其他好文 时间:
2014-08-02 15:30:53
阅读次数:
263
#include
#include
#define LENGTH 100 //初始分配栈的长度
#define ADD_LEN 10 //栈长增量
typedef struct
{//构造栈的数据类型
int *base;
int *top;
int stacksize;
}SqStack;
void CreateStack(SqStack &S);//初始化一个栈
void PushS...
分类:
其他好文 时间:
2014-08-01 13:49:41
阅读次数:
187
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若 ∈E(G),则u在线性序列中出现在v之前。若图中存在有向环,则不可能使顶点满足拓扑次序。利用DFS每次取出入度为0的点,存入栈中,即可获得拓扑序...
分类:
其他好文 时间:
2014-07-31 23:15:30
阅读次数:
257
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237题目大意:一个简单的计算器,只要判断好运算顺序即可。先加减后乘除~建议一个比较简单的想法,输入一个数字,再输入一个字符,接下去对字符进行判断,分别将数字存入栈中,最后将栈的数进行整理。这样做下去还可...
分类:
其他好文 时间:
2014-07-31 16:09:06
阅读次数:
228
题目链接:uva 1478 - Delta Wave
题目大意:对于每个位置来说,可以向上,水平,向下,坐标不能位负,每次上下移动最多为1, 给定n问说有多少种不同的图。结果对10100取模。
解题思路:因为最后都要落回y=0的位置,所以上升的次数和下降的次数是相同的,并且上升下降的关系满足出栈入栈的关系。即卡特兰数。
所以每次枚举i,表示有i个上升,i个下降,用组合数学枚举出位置,...
分类:
其他好文 时间:
2014-07-30 23:59:15
阅读次数:
701
设计和调试分析1.在建立二叉树时,要遵循一个原则,那就是运算符做为分支结点,操作数做为叶子结点,利用栈进行操作。当遇到操作数是,无论是变量还是实数或整数,都将入栈。当遇到运算符号时,把栈顶的两个元素弹出来进行运算,然后再把运算结果放入栈中。如果你输入的是正确的后缀表达式,那么,最终要建立的那棵树就是...
分类:
其他好文 时间:
2014-07-30 23:20:55
阅读次数:
227
定义一个队栈,每次出现一个数放进栈中,若出现运算符的话,就将栈顶的两个元素出栈进行运算后在放入栈考虑特殊情况1.只有一个数字的时候2.出现负数的情况class Solution{public: int evalRPN(vector &tokens) { // if(token...
分类:
其他好文 时间:
2014-07-30 07:40:03
阅读次数:
169
栈stack头文件与定义#includestackmystack; //以下以mystack为例用法1.将元素a入栈:mystack.push(a);2.将栈顶元素弹栈/出栈:mystack.pop();3.判断栈是否为空:mystack.empty()4.栈的长度:cout内不要总是习惯性int。...
分类:
其他好文 时间:
2014-07-30 00:47:32
阅读次数:
215
这一问题主要是如何判读出先后入栈的变量的地址大小,比如有a, b两个变量一先一后被定义,如果a的地址大于b的地址,则说明是以低地址方向增长的,反之,往高地址方向增长。...
分类:
编程语言 时间:
2014-07-29 18:09:12
阅读次数:
180
本题的关键在于解析表达式.本题的表达式比较简单,可以用一个栈来完成--->>
遇到一个字母时,就入栈;遇到右括号时就出栈进行计算,然后将新矩阵点入栈!
如果在这之间,如果A的列数不等于B的行数,则乘法无法进行!!!注意咯!...
分类:
其他好文 时间:
2014-07-29 17:53:32
阅读次数:
189