题目链接:uva 12096 - The SetStack Computer
题目大意:一个栈,有5种操作;
PUSH:向栈中放一个空集合。DUP:复制栈顶集合。UNION:取栈顶的两个集合,取并集后放回。INTERSECT:取栈顶的两个集合,取交集后放回。ADD:取栈顶两个集合,将第一个集合作为元素放到第二个集合中,并将第二个集合放回栈。
每次操作后输出栈定集合中元素的个数。...
分类:
其他好文 时间:
2014-08-24 00:22:41
阅读次数:
288
括号配对是最基本的栈的问题,它是栈入门的经典题目,思路是,如果是左括号直接进栈,如果是右括号,这时就要比较栈顶的元素与他是否匹配,如果匹配则出栈,否则进栈,下面是代码的实现: 1 #include 2 #include 3 typedef struct stack{//定义栈来存储括号 4 ...
分类:
其他好文 时间:
2014-08-23 13:52:40
阅读次数:
221
1. 括号匹配的四种可能性:①左右括号配对次序不对②右括号多于左括号③左括号多于右括号④左右括号匹配正确2. 算法思想:1.顺序扫描算数表达式(表现为一个字符串),当遇到三种类型的左括号时候让该括号进栈;2.当扫描到某一种类型的右括号时,比較当前栈顶元素是否与之匹配,若匹配,退栈继续推断;3.若当前...
分类:
其他好文 时间:
2014-08-21 19:00:14
阅读次数:
167
题意:
你有一个栈 一些操作发生在栈上 包括进栈、出栈、询问栈顶 每个操作有一个独一无二的时间 当操作读进来时 要把之前处理的本该在本操作之后的操作全撤销 接着完成现在的操作 再把撤销的操作重做一遍 每次询问操作输出栈顶元素
思路:
由于时间唯一 那么可以用时间来对应插入的元素以及操作的类型 所以首先离散化时间(这里不去掉重复也行)
然后我们把push当作+1 pop...
分类:
其他好文 时间:
2014-08-20 18:03:22
阅读次数:
229
从一个Controller跳转到另一个Controller时,一般有以下2种:1、利用UINavigationController,调用pushViewController,进行跳转;这种采用压栈和出栈的方式,进行Controller的管理。调用popViewControllerAnimated方法...
分类:
移动开发 时间:
2014-08-19 18:29:45
阅读次数:
471
一、栈在说函数递归的时候,顺便说一下栈的概念。栈是一个后进先出的压入(push)和弹出(pop)式数据结构。在程序运行时,系统每次向栈中压入一个对象,然后栈指针向下移动一个位置。当系统从栈中弹出一个对象时,近期进栈的对象将被弹出。然后栈指针向上移动一个位置。程序猿常常利用栈这种数据结构来处理那些最适...
分类:
其他好文 时间:
2014-08-17 22:35:42
阅读次数:
248
一、栈ADT是what?1、定义 栈,是限制插入和删除都只能在一个位置上进行的表。2、图示 3、栈的基本功能(1)是否为空(2)进栈(3)出栈(4)清空(5)取栈顶二、栈的链表实现
分类:
其他好文 时间:
2014-08-17 16:43:42
阅读次数:
183
1.非递归先序遍历要点:总是先访问根root,而将root的右结点压入栈中,当root没有左结点时,取出栈顶元素给root。void preorder(node* root){ if(root==NULL) return; stack s; while(true){ ...
分类:
其他好文 时间:
2014-08-16 12:19:30
阅读次数:
171
/*
题目大意:求括号是否配对
解题思路:开一个数组b,来作为栈,top为栈的下个下标控制入栈和出栈
难点详解:见代码
关键点:对进栈和出栈了解深刻一点
解题人:lingnichong
解题时间:2014/08/15 19:46:45
解题体会:最基本栈的运用。一开始还不是很清楚。可以先背一下,每天睡觉前再看一下,到用的时候,再根据这个模板写出来就可以了,这样印象会更加深刻了
*...
分类:
其他好文 时间:
2014-08-15 21:14:40
阅读次数:
220
9.52使用stack对象处理带圆括号的表达式。遇到左圆括号时,将其标记下来。当你在一个左括号之后遇到右圆括号时,弹出stack对象中这两边括号之间的元素,直到遇到左括号,将左括号也一起弹出栈。接着在stack对象中压入一个值,用以表明这个用一对圆括号括起来的表达式已经被替换。程序如下:#inclu...
分类:
其他好文 时间:
2014-08-15 20:59:29
阅读次数:
208