初看貌似有点复杂,但是搞懂了非常简单,就一个简单的栈应用,每次遇到计算符号"+", "-", "*", "/"就将栈顶端两个数字出栈,计算后再将结果压栈即可。。
#include
#include
#include
using namespace std;
class Solution {
public:
int evalRPN(vector &tokens) {
stack s...
分类:
其他好文 时间:
2014-10-03 15:36:44
阅读次数:
144
1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈6.最终将栈中的...
分类:
其他好文 时间:
2014-09-26 23:59:48
阅读次数:
154
数据结构:
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
操作系统:
由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈使用的...
分类:
其他好文 时间:
2014-09-26 20:30:58
阅读次数:
678
数据结构:
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
操作系统:
由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈使用的...
分类:
其他好文 时间:
2014-09-26 20:30:48
阅读次数:
150
数据结构:
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
操作系统:
由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈使用的是一级缓存, 他...
分类:
其他好文 时间:
2014-09-26 19:43:38
阅读次数:
168
题目大意:就是通过一个栈进行字母入栈出栈得到想要的字符,把所有可能的方式全部输出自己写的方法一开始一直不能过,后来参考了别人的方法,写出来的比较简单的代码这段代码更有回溯的感觉,自己后来又把自己原来想法的代码写了一遍,终于写出来了,不过有点让人头晕 1 #include 2 #include 3.....
分类:
其他好文 时间:
2014-09-26 01:46:48
阅读次数:
284
题意:
地面上有n座楼 你分别站在m个位置上 问每个位置上能看见多大角度的天空
思路:
很明显能想到在站的位置两边维持单调性 因此我们可以将站位和楼的位置排序 从左到右维护一遍 再从右到左维护一遍 这里可以利用单调栈 对于新扫描到的位置 如果是楼 那么栈中比它矮的楼就没用了可以出栈 如果是站位 可以这样判断 如果可以看见栈底的楼(最高的楼)那么前面的矮楼一定不会影响后...
分类:
其他好文 时间:
2014-09-24 12:53:56
阅读次数:
161
UVa514 Rails(铁轨)
题目描述:
某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶入车站。例如,出栈顺序(5 4 1 2 3)是不可能的,但是(5 4 3 2 1)是可能的。
题目分析:
为了重组车厢,借助中转站,对于每个车厢,一旦从A移入C就不能回到A了,一旦从C移入B,就不能回到C...
分类:
其他好文 时间:
2014-09-23 17:46:25
阅读次数:
225
栈的基本操作包括入栈push和出栈pop,栈有一个栈顶指针top,指向最新如栈的元素,入栈和出栈操作操作都是从栈顶端进行的。
队列的基本操作包括入队enqueue和出队dequeue,队列有队头head和队尾tail指针。元素总是从队头出,从队尾入。采用数组实现队列时候,为了合理利用空间,可以采用循环实现队列空间的有效利用。
关于栈和队列的基本操作如下图所示:
采用数组简单实现一下栈...
分类:
其他好文 时间:
2014-09-22 01:16:21
阅读次数:
499
题意:
给出N幢摩天大楼的位置和高度,有Q次查询,问在某点处能看见天空的角度范围。
分析:
一开始的想法是维护一个单调栈,首先离线数据并排序排序,然后左右扫两边。单调栈内大楼的高度要递减,然后判断栈顶元素是否比它的前一个更优,如果不是则出栈。但是如果栈顶元素比它前一个优,并不能保证是全局最优的。
正确的维护方法是保证单调栈内的大楼高度递减,而且要使得这些大楼的最高点构成一个类似凸包的形状,或者说是凸包的一部分,然后再判断栈顶元素和它前一个比是否更优,如果不是则出栈。这样最后的栈顶元素就是待查询点在某方向的视...
分类:
其他好文 时间:
2014-09-21 23:18:21
阅读次数:
307