zoukankan      html  css  js  c++  java
  • 用栈实现队列

    正如标题所述,你需要使用两个栈来实现队列的一些操作。

    队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。

    pop和top方法都应该返回第一个元素的值。

    比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2

    思路:

    1、push元素时,直接进栈stack1

    2、pop或top时,判断stack2是否为空,若为空,将stack1中的元素逆序插入stack2。然后返回stack2.pop()  或 stack2.peek()。

    知识点:

    栈是Vector的一个子类,它实现了一个标准的后进先出的栈。堆栈只定义了默认构造函数Stack(),用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

    1、empty():测试堆栈是否为空

    2、push(element):将项压入堆栈顶部

    3、top():移除堆栈顶部的对象,并作为此函数的值返回该对象

    4、peek():查看堆栈顶部的对象,但不从堆栈中移除

    5、search():返回对象在堆栈中的位置,以1为基数。

    代码:

    public class MyQueue {
        private Stack<Integer> stack1;
        private Stack<Integer> stack2;
        public MyQueue() {
            // do intialization if necessary
            stack1 = new Stack<Integer>();
            stack2 = new Stack<Integer>();
        }

        /*
         * @param element: An integer
         * @return: nothing
         */
        public void push(int element) {
            // write your code here
            stack1.push(element);
        }
        /*
         * @return: An integer
         */
        public int pop() {
            // write your code here
            if(stack2.empty()){
                while(!stack1.empty()){
                    stack2.push(stack1.pop());
                }
            }
            return stack2.pop();
        }

        /*
         * @return: An integer
         */
        public int top() {
            // write your code here
            if(stack2.empty()){
                while(!stack1.empty()){
                    stack2.push(stack1.pop());
                }
            }
            return stack2.peek();
        }
    }

  • 相关阅读:
    自动批改android模拟器的imei的小程序 和 下载各个版本SDK Tools及ADT
    Bulestacks模拟器Bulestacks.prop文件里中英文对照表
    HTTP Analyzer——WEB调试代理
    XCODE 添加不同IOS版本的模拟器
    在PC上运行安卓(Android)应用程序的几个方法
    二叉查找树的类模板实现
    以给定值为基分割链表
    简单二叉排序树的实现
    vector和list删除元素
    二叉树的基本操作
  • 原文地址:https://www.cnblogs.com/yanernanfei/p/7650313.html
Copyright © 2011-2022 走看看