不必解释了吧,这里代码应该就能说明问题了
#include
#include
#include
using namespace std;
//Queue
template
class Queue
{
public:
void pop(void);
void push(const T& t);
const T& front(void);
bool empty...
分类:
编程语言 时间:
2014-11-10 21:56:46
阅读次数:
391
一共用两个栈。一个用来放数据,另一个专门用来存放当前最小值。 1 class MinStack { 2 public: 3 void push(int x) { 4 elements.push(x); 5 if (mins.empty()||x element...
分类:
其他好文 时间:
2014-11-10 19:45:57
阅读次数:
143
题目链接:http://poj.org/problem?id=3295思路:判断逻辑表达式是否为永真式问题。根据该表达式的特点,逻辑词在逻辑变量前,类似于后缀表达式求值问题。算法中使用两个栈,从表达式的后边开始处理表达式中每个字符;若为逻辑变量,使其入栈SR,否则从栈SR中弹出两个逻辑变量,进行运算...
分类:
其他好文 时间:
2014-10-25 01:59:07
阅读次数:
223
用两个栈模拟:
Editor
Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1913 Accepted Submission(s): 591
Problem Description
...
分类:
其他好文 时间:
2014-10-24 16:29:33
阅读次数:
139
题目:用两个栈实现一个队列,并分析相关队列操作的运行时间解答:1、使用两个栈S1与S2;2、通过栈S1的Push执行队列入队操作,通过栈S2的Pop执行队列出队操作3、当栈S2为空后,即S1->Top = S2->Top,转换;栈S2的Push执行入队操作,栈S1的Pop执行出队操作操作时间复杂度:...
分类:
编程语言 时间:
2014-10-18 13:54:59
阅读次数:
265
这个思路实在太难想了。。。。
/*
*str为PUSH,通过s1.push()使元素入栈;
*str为POP时,s2非空,输出栈顶元素,s2.pop()弹出栈顶元素;若s2弹出元素后为空且s1不空,将s1中所有元素push进s2;
*str为POP时,s2为空,若s1不空,将s1中所有元素push进s2,最后输出栈顶元素并通过s2.pop()弹出栈顶元素;
*/题目描述:用两个栈来实现一...
分类:
其他好文 时间:
2014-10-17 16:55:57
阅读次数:
188
转自:http://bylijinnan.iteye.com/blog/1450125————————————————————————————————————————————Java代码 importjava.util.ArrayList; importjava.util.List; importj...
分类:
编程语言 时间:
2014-10-06 01:36:29
阅读次数:
280
波兰式,操作符放在操作数前。逆波兰式,操作符放在操作数后。中序的话,用两个栈,一个存操作符, 一个存操作数,根据操作符优先级来操作。为了处理边界情况,在操作符的栈底和栈顶都放了一个"#"。伪代码如下: 1 stack ops; 2 stack nums; 3 ops.push('#'); 4 5 ....
分类:
其他好文 时间:
2014-10-05 17:09:38
阅读次数:
297
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数,appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。思路:首先要明确的是,看到这道题目,我们最先应该想到的是用C++来实现之。为什么?因为看到栈和队列,如果用C来实现的话..
分类:
其他好文 时间:
2014-09-25 16:55:49
阅读次数:
175