分析:中缀表达式的操作符以中缀的形式处于操作数的中间。若创建一个数字栈,一个运算符栈,并将一个中缀表达式从左至右压入栈这两个栈中。先向数字栈压入一个数字,再向运算符栈压入一个运算符,接着向数字栈压入数字。此时数字栈中有两个元素,字符栈中有一个元素。当开始读到第二个运算符时就判断当前准备压入运算符与之...
分类:
其他好文 时间:
2015-11-23 23:27:25
阅读次数:
221
用两个栈实现一个队列算法思想:(1)stack1用来存储入队的元素,所以入队就是把进来的元素push到stack1;(2)对于出队列,一开始stack2是空的,所以我们把stack1中的元素全部pop到stack2中,这样stack2的栈顶就是队头,只要stack2不为空,那么每次出队,就相当于stack2的pop;(3..
分类:
其他好文 时间:
2015-11-11 06:38:08
阅读次数:
191
题意:有n个方块栈,一开始每个栈里只有一个方块,方块编号为栈编号,两种操作,一种是把方块a所在的栈全放在方块b所在的栈上面,另一种要求输出方块a的下面有多少个方块。解法:并查集。用数组size[i]维护以i为根的集合大小,数组ans[i]维护方块i下面有多少方块,那么当两个栈合并时,栈a的底的ans...
分类:
其他好文 时间:
2015-11-10 21:14:00
阅读次数:
312
0x1 基础知识CPU:寄存器内存:物理内存地址、虚拟内存地址栈:可以看做一种数据结构,先进后出的数据表。有压栈(PUSH)、有弹栈(POP)、标识栈的属性有两个:栈顶(TOP)、栈底(BASE)可以把栈看做一副扑克,PUSH,往上放一张牌(压入数据),POP,拿走一张牌(弹出数据)。0x2 函数调...
分类:
其他好文 时间:
2015-11-05 18:40:03
阅读次数:
366
面试的时候,栈和队列经常会成对出现来考察。本文包含栈和队列的如下考试内容:(1)栈的创建(2)队列的创建(3)两个栈实现一个队列(4)两个队列实现一个栈(5)设计含最小函数min()的栈,要求min、push、pop、的时间复杂度都是O(1)(6)判断栈的push和pop序列是否一致1、栈的创建:我...
分类:
编程语言 时间:
2015-11-05 10:33:39
阅读次数:
243
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。队列嘛,先进先出,栈嘛,先进后出。 于是乎,把第一个栈扔满,然后再一一放到另一个栈中,然后再一一取出来。 没了- -public class reconstructionQueue { Stack st...
分类:
其他好文 时间:
2015-11-04 17:34:43
阅读次数:
153
题意: 用迭代法输出一棵二叉树的后序遍历结果。思路: (1)用两个栈,一个存指针,一个存标记,表示该指针当前已经访问过哪些孩子了。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int ...
分类:
其他好文 时间:
2015-11-02 22:39:45
阅读次数:
259
程序设计思想: 1.首先定义一个数据类型包含车牌号和进去的时间,这两个车的信息。 2.定义栈一用来模仿停车场的入栈函数(其中包含入队函数,栈满则入队),栈二用来储存栈一出来元素的入栈函数。 3.两个栈的有共同的出栈函数。 4.定义队列(模仿便道)的入队与出队函数 5.在主函数中调...
分类:
其他好文 时间:
2015-10-25 12:02:15
阅读次数:
204
题目:求字符串表达式的值,如"-2+(3+4)-5*6",返回-25.思路:分离数字和运算符并考虑运算符的优先级,如(),*,/,+,-等。两个栈:一个存数字,一个存运算符代码:#include#include#include#includeusing namespace std;double ca...
分类:
编程语言 时间:
2015-10-24 21:47:33
阅读次数:
256
大众思路:用两个栈实现,记为s1,s21.元素入栈时,加入s12.元素出栈时,对s2进行判断,如果s2为空,则将全部s1元素弹出并压入到s2,然后从s2栈顶弹出一个元素;如果s2不为空,则直接从s2的栈顶弹出一个元素冷门思路:这种思路效率比较低1.元素入栈时,加入s12.元素出栈时,对s2进行判断,...
分类:
其他好文 时间:
2015-10-23 18:38:40
阅读次数:
151