栈的概述什么是栈呢?
限定仅在表尾进行插入或删除操作的线性表。对栈来说,表尾又称栈顶(top),表头又称为栈底(bottom)。不含元素的空表称为空栈。
如:栈S=(a1,a2,…,an),其中a1为栈底元素,an 为栈顶元素
栈有什么特点呢?
栈是一种线性结构
对栈的操作按照“后进先出”的原则进行
读栈顶元素
非空栈中,读取栈顶元素,不影响栈中元素之间的关系
入栈...
分类:
其他好文 时间:
2015-05-11 09:09:29
阅读次数:
107
规则:
当读到一个操作数时,立即把它放到输出中。当读到操作符时不立即输出,从而必须先存在某个地方。正确的做法是将已经见到过的操作符放进栈中而不是放到输出中。当遇到左括号时我们也要将其推入栈中。如果遇到一个右括号,我们就弹出栈中的符号并输出,直到遇到对应的左括号,并且这个左括号只弹出,不输出。
存入栈中的操作符的规则:优先级必须保持从上到下为高到低。遇到一个操作符时,我们从栈中弹出元素,直到发现...
分类:
其他好文 时间:
2015-05-10 09:48:22
阅读次数:
129
题目大意:有一列n节车厢的火车要入栈,车厢从1到n,只能从小到大入栈。
现在给出一个出栈顺序,问能否实现解题思路:如果栈顶元素大于要出栈的数,肯定就不能实现了。
如果栈顶元素小于要出栈的数,就继续入栈
如果栈定元素等于要出栈的数,就出栈#include
#include
#include
using namespace std;
#defin...
分类:
其他好文 时间:
2015-05-10 09:47:18
阅读次数:
103
思路:
栈作为输入缓冲区,每当从终端了接受一个字符之后先做如下判别:
1:若是退格符#,从栈顶删去一个元素,即出栈Pop;
2:若是退行符@,将字符栈清空,即clear;
3:若不是#或@,即为有效字符,将该字符入栈,即Push;
顺序栈的代码:点击打开链接
只需将 typedef int ElemType -------->>> typedef char ElemType
#in...
分类:
其他好文 时间:
2015-05-09 16:36:58
阅读次数:
107
栈的定义
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表
插入、删除这些操作的一端为栈顶(Top),另一端称为栈底(Bottom)。
当表中没有元素时称为空栈。
栈为一种先进后出的数据结构。或者称为后进先出
栈的修改需要遵循先进后出的原则。每次删除(退栈)的总是当前栈中”最新”元素(最后入栈的元素),而最先插入的元素是被放在栈的底部,要最后才能删除。
如图所示,元素是以...
分类:
系统相关 时间:
2015-05-08 14:56:38
阅读次数:
182
对顺序栈实现如下功能:
void meau(); //菜单函数
void InitStack(Stack *st); //初始化栈
bool IsFull(Stack *st); //判断栈是否已满
bool IsEmpty(Stack *st); //判断栈是否为空
bool Push(Stack *st,ElemType x); //入栈
bool Pop(Stack *st,...
分类:
其他好文 时间:
2015-05-08 09:32:49
阅读次数:
101
A:这题利用单调栈,先预处理出每个位置向下的最远位置,那么每一行单独考虑,每行就相当于一些段的子矩阵个数,利用单调栈维护,每次出栈的时候把大于当前要入栈(高度0的不入栈了)的段的部分计算出来,累加一下答案即可
B:这题可以枚举,因为一个10^15开3方之后是10^5枚举起来是没有问题的,然后枚举一个数字i,等于要计算在max(a, i * i * i)到min(i * i * i, b)区间,有...
分类:
其他好文 时间:
2015-05-04 06:28:46
阅读次数:
155
堆栈的模拟,给定序列,1,2,3,4,...判断堆栈出栈顺序是否合法5 //5个数入栈1 2 3 4 5 //出栈顺序5 4 1 2 3 //出栈顺序0 //5个数的结束6 //6个数的入栈6 5 4 3 2 10 //6个数的结束0 //输入结束数组作栈a栈放目标出栈顺序,让1,2,3,4依次入s...
分类:
其他好文 时间:
2015-05-01 13:15:23
阅读次数:
231
6.3.4 为函数调用与返回产生汇编代码
在这一小节中,我们来讨论一下如何为函数调用和函数返回生成汇编代码。函数调用对应的中间指令如下所示:
//中间指令的四元式:
让我们先熟悉一下C函数的调用约定CallingConvention,我们需要把参数从右向左入栈(即从argn到arg1依次入栈),不妨记这些参数所占用的总内...
分类:
其他好文 时间:
2015-05-01 09:28:49
阅读次数:
203
两道题目意思差不多第一题是10进制,第二题是2进制的都是利用欧拉回路的fleury算法来解决因为我总是希望小的排在前面,所以我总是先将较小数加入栈,再利用另一个数组接收答案,但是这里再从栈中导出来答案要倒一下了,这一点要注意poj 1780 1 #include 2 #include 3 #in.....
分类:
其他好文 时间:
2015-04-30 00:42:46
阅读次数:
170