/** * 题目: * 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek) * 分析: * 栈的特点是先进后出,而队列的特点是先进先出,我们可以用两个栈正好能把顺序 * 反过来实现类似队列的操作。 * 具体实现是一个栈作为压入栈,在压入数据时只往这个栈中压入,记为stac ...
分类:
其他好文 时间:
2020-03-04 12:29:06
阅读次数:
54
栈和队列1.用两个栈实现队列2.包含min函数的栈3.栈的压入弹出序列正文栈和队列1. 用两个栈实现队列题目表述用两个栈实现一个队列。队列的声明如下:请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。解题思路一个栈用来存储插入队列数据... ...
分类:
其他好文 时间:
2020-02-28 11:59:59
阅读次数:
66
题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead?操作返回 1 ) 思路 一个入栈,一个出栈 收获 java的Stack pop方法会返回出 ...
分类:
其他好文 时间:
2020-02-22 16:03:26
阅读次数:
63
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 push时直接入栈stack1,pop时若stack2为空则stack1出栈到stack2后stack2.pop(),否则stack2直接pop。 时间复杂度O(1)。 代码 ...
分类:
其他好文 时间:
2020-02-14 10:52:33
阅读次数:
73
class CQueue { private Stack<Integer> stack1; private Stack<Integer> stack2; public CQueue() { this.stack1 = new Stack<>(); this.stack2 = new Stack<>( ...
分类:
其他好文 时间:
2020-02-13 21:17:39
阅读次数:
83
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:元素先进stack1,再从stack1到stack2,如果stack2中有元素则直接弹出,没有则从stack1中获取元素。当stack2中有元素的时候,stack1不能向stack2添加元素,否则会造成乱序。 ...
分类:
其他好文 时间:
2020-01-22 23:37:21
阅读次数:
77
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 由于本身给了import java.util.Stack;所以感觉可以使用JDK自带的栈 思路:用两个栈进行记录,s1记录全部,s2记录各个时刻最小值 源码如下: 1 import java.ut ...
分类:
其他好文 时间:
2020-01-12 09:33:43
阅读次数:
78
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 ...
分类:
其他好文 时间:
2020-01-09 13:21:23
阅读次数:
63
输入:1+2)*33-44)*555-666))) 输出:((1+2)*((33-44)*(555-666))) 双栈法,顾名思义,就是用两个栈来实现整个算法。一个栈保存数据,另外一个栈保存运算符。 代码实现及注释: package main import "fmt" /* 左括号补全算法 */ t ...
分类:
编程语言 时间:
2020-01-04 14:24:33
阅读次数:
69