3.5 实现一个MyQueue类,该类用两个栈来实现一个队列。解答队列是先进先出的数据结构(FIFO),栈是先进后出的数据结构(FILO), 用两个栈来实现队列的最简单方式是:进入队列则往第一个栈压栈, 出队列如果第二个栈不为空,则直接从第二个栈出队列,否则将第一个栈的数据依次压入第二个栈,然后出栈...
分类:
其他好文 时间:
2014-12-04 21:25:24
阅读次数:
168
oj地址
题目1512:用两个栈实现队列
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:2360
解决:804
题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。
输入:
每个输入文件包含一个测试样例。
对于每个测试样例,第一行输入一个n(1
...
分类:
其他好文 时间:
2014-12-04 20:03:58
阅读次数:
157
问题描述: 用两个栈实现队列,队列的声明如下,请实现他的两个函数AppendTail和DeleteHead,分别完成在队列 尾部插入节点和在队列头部删除节点的功能。 templateclass CQuene{public: CQuene(){}; ~CQuene(){}; void AppendTa...
分类:
其他好文 时间:
2014-11-25 23:23:34
阅读次数:
191
原题地址:https://oj.leetcode.com/problems/min-stack/解题思路:开辟两个栈,一个栈是普通的栈,一个栈用来维护最小值的队列。代码:class MinStack: # @param x, an integer def __init__(self): ...
分类:
编程语言 时间:
2014-11-12 13:44:19
阅读次数:
213
不必解释了吧,这里代码应该就能说明问题了
#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
思路:参考严蔚敏的数据结构书籍
两个栈:操作数栈OPND,操作符号栈OPTR
在表达式后加=
符号栈初始化时=入栈
每读一个字符:
当它是#并且符号栈栈顶也是#时结束算法
当它是操作数时,进数栈
当它是符号时:
1.如果符号栈顶的优先级小于它,进符号栈
2.如果符号栈顶的优先级大于它,出两个数,出一个符号,计算后入数栈
3.如果与符号...
分类:
其他好文 时间:
2014-10-31 22:18:44
阅读次数:
221
问题描述: 中缀表达式计算,只包含加减乘除以及括号,例如: 2+3*4-5/2 = 11.5 ((2+3*4)-5)/2 = 4.5思路: 1. 维护两个栈空间:数字栈与符号栈 2. 注意入栈与出栈的规则,符号栈入栈时,根据符号优先级判断是否入栈或出栈。 高优先级符号后入栈时...
分类:
其他好文 时间:
2014-10-25 11:46:16
阅读次数:
200
题目链接:http://poj.org/problem?id=3295思路:判断逻辑表达式是否为永真式问题。根据该表达式的特点,逻辑词在逻辑变量前,类似于后缀表达式求值问题。算法中使用两个栈,从表达式的后边开始处理表达式中每个字符;若为逻辑变量,使其入栈SR,否则从栈SR中弹出两个逻辑变量,进行运算...
分类:
其他好文 时间:
2014-10-25 01:59:07
阅读次数:
223