用两个栈模拟队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

用两个栈模拟队列


思路分析

提示:这里可以添加本文要记录的大概内容:
这里有两个栈,一个栈stack1用来模拟队列的入队,一个栈stack2用来模拟队列的出队


提示:以下是本篇文章正文内容,下面案例可供参考

代码实现

代码实现如下:

public class Solution {
    
    
	Stack<Integer> stack1 = new Stack<Integer>();//用来模拟队列入列
	Stack<Integer> stack2 = new Stack<Integer>();//用来模拟队列出列
	
	public void push(int node) {
    
    
		stack1.push(node); //直接入栈1
	}

	public int pop() {
    
    
		/*如果栈2为空就代表没有进行过出队操作
        所以需要把栈1里面的元素全部压入栈2中,进行模拟队的出队操作
        */
		if(stack2.isEmpty()) {
    
    
			while(!stack1.isEmpty()) {
    
    
				stack2.push(stack1.pop());
			}
		}
		/*如果栈2不为空就代表之前的操作已经使用过出队操作,直接取出栈2的栈顶
        元素就是当前出队的那个元素*/
		return stack2.pop(); 
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_43558210/article/details/114403503