码迷,mamicode.com
首页 >  
搜索关键字:两个栈    ( 569个结果
两个栈实现队列的功能
//用两个栈实现队列的功能//假设有两个栈s1与s2,则s1保存刚刚入队的元素,若需出队且s2为空,则将s1所有元素压入s2(此时s2中元素顺序为元素入队顺序),然后取出s2栈顶即可,若s2非空(此时s2中元素为s1之前压入,其栈顶就是最早入队的元素),则直接取出s2的栈顶。template cla...
分类:其他好文   时间:2015-04-06 23:06:56    阅读次数:155
每日一题16:在一个数组中实现两个栈
在一个数组中实现两个栈,当数组未填满是任一个栈不能溢出。解法是将一个栈从头开始往后插入,而另一个从后往前插入,如果插入一个元素后,两个栈的top指针未相遇,则表示数组未满,栈没有溢出。#include "stdafx.h" #include using namespace std; struct special_stack { int capcity; int l...
分类:编程语言   时间:2015-04-05 10:33:35    阅读次数:402
leetcode_Min Stack
思路: 本题目的解法是用到了两个栈,一个用来存元素,另一个用来存最小元素,元素入栈时和minStack栈里面的栈顶元素相比,小于栈顶元素则存入,大于栈顶元素则栈顶元素(当前元素中的最小值)入栈。其中,需要注意的是元素出栈时,要随时更新当前栈中的最小元素min=minStack.top()...
分类:其他好文   时间:2015-04-04 21:16:38    阅读次数:168
两个栈模拟一个队列
两个栈模拟一个队列,1号栈为入队,栈顶表示队尾;2号栈为出队,栈顶表示队首。 入队,直接进1号栈;出队,先判断2号栈是否有元素,有元素就直接弹出栈顶即队首,如果2号栈没有元素,则将1号栈的元素顺序弹出并进2号栈。 [cpp] view plaincopy #include    #include    #include    using name...
分类:其他好文   时间:2015-04-01 15:25:38    阅读次数:139
两个栈实现队列 7
主要实现从尾部添加字符和从头部删除字符 从尾部添加直接push进一个stack1即可 从头部删除,需要先将stack1中的字符压入stack2,然后从stack2弹出,这样顺序才对 考虑一种情况,先push进a和b,弹出a,再压入c,再弹出的话要弹出b 在将stack1的数压入stack2之前要判断...
分类:其他好文   时间:2015-03-30 22:59:57    阅读次数:196
双栈计算算术表达式
1.介绍 算术表达式的计算,是比较常见的问题,但这个问题的背后隐藏着栈的思想。 这里就介绍使用两个栈来计算表达式的方法。 2. 算法 2.1 定义: a) 建立两个栈: 一个是数据栈dataStak,用于存放数据; 一个是符号栈operatorStack,用于存放运算符; b) 建立运算符号之间的优...
分类:其他好文   时间:2015-03-27 23:39:40    阅读次数:239
【Weiss】【第03章】练习3.21:单数组模拟双栈
【练习3.21】编写仅用一个数组而实现两个栈的例程。除非数组的每一个单元都被使用,否则栈例程不能有溢出声明。Answer:很简单,一个栈从数组头起,一个栈从数组尾起,分别保留左右栈头索引。如left=5则表示array[0]~array[4]为左栈元素,right=7则表示array[8]~arra...
分类:编程语言   时间:2015-03-21 00:59:42    阅读次数:830
前缀、中缀、后缀表达式
它们之间的区别在于运算符相对与操作数的位置不同。将中缀表达式转换为前缀表达式:遵循以下步骤:(1) 初始化两个栈:运算符栈S1和储存中间结果的栈S2;(2) 从右至左扫描中缀表达式;(3) 遇到操作数时,将其压入S2;(4) 遇到运算符时,比较其与S1栈顶运算符的优先级:(4-1) 如果S1为空,或...
分类:其他好文   时间:2015-03-20 06:54:53    阅读次数:165
关于 添加了新要求的 四则运算 的设计思路
1、题目避免重复利用随机数生成运算式,构造两个栈,将生成的结果输入到栈里,利用栈的结构特点,进行匹配,相同的删除,不同的保留。避免过高的比较次数,可以设定,当新生成的结果与之前的比较结果比较次数达到30次时,如果没有重复,保留这次产生的运算式。2、可制定(数量/打印方式)定义变量,通过对变量的控制达...
分类:其他好文   时间:2015-03-13 14:06:28    阅读次数:112
LeetCode 155. Min Stack
相较普通的栈,题目要求多实现一个操作getMin(): 获取栈中最小的元素    我们维护两个栈:普通栈s保存所有元素, 最小栈min_s保存s中的“曾出现过”的最小元素的递减序列。 min_s.top()即为getMin()的返回值,标识普通栈s里的最小元素。 考虑压栈 3 4 5 2 3 1, 它们有如下表现: push   3 4 5 2 3 1 s          3...
分类:其他好文   时间:2015-02-24 11:27:50    阅读次数:133
569条   上一页 1 ... 48 49 50 51 52 ... 57 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!