原题地址
题目描述
题目思路
栈:先入后出
队列:先进先出
- 创建两个栈,一个用于模拟入队的元素,另一个则用于模拟对内元素出队。入队可以直接向入队栈添加元素,而删除队头元素(出队)则需要将入队栈中的所有元素依次弹出入队栈后,添加至出队栈,再从出队栈弹出栈顶元素。
- 如果直接从入队栈(inputStack)弹出元素,不符合队列先入先出的特点,因此需要借助出队栈(outputStack)保证出队顺服符合队列特点。
代码实现
使用到的方法
- pop():移除堆栈顶部的对象,并作为此函数的值返回该对象。
- push():把项压入堆栈顶部。
- isEmpty():测试堆栈是否为空。
创建两个栈
private Stack<Integer> input;
private Stack<Integer> output;
appendTail()方法实现(元素入队)
public void appendTail(int value) {
input