zoukankan      html  css  js  c++  java
  • 9:两个栈实现一个队列

    1、题目描述:

      用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

    2、思路:

      栈是先进后出,队列是先进先出。stack1只需要把其中的元素全部导入stack2 ,元素的顺序就变成了先进先出的顺序。但有一点必须考虑,那就是元素导入的时机问题,因为元素入队和出队的时机是随机的。导入时机就是当让元素pop出队的时候,若stack2为空,将stack1的元素全部导入进stack2。

           总之,这道题考的其实就是元素倒栈的时机。

    3、代码:

    import java.util.Stack;
    
    public class Solution {
        Stack<Integer> stack1 = new Stack<Integer>();
        Stack<Integer> stack2 = new Stack<Integer>();
        
        public void push(int node) {
            stack1.push(node);
        }
        
        public int pop() {
            if(stack2.empty()){
                while(!stack1.empty()){ 
                    stack2.push(stack1.pop());
                }
             }
            return stack2.pop();
        }
    }
  • 相关阅读:
    django文件上传
    django验证码
    auth模块---笔记
    css笔记
    django模板系统---2
    django模板系统
    Django中间件
    前端笔记---1
    我的django笔记---1
    DNS服务器的搭建
  • 原文地址:https://www.cnblogs.com/guoyu1/p/12058225.html
Copyright © 2011-2022 走看看