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

    题目很简单,今天看了下Java泛型的东西,用泛型改写了一下:

    package com.wy.oj;
    
    import java.util.Stack;
    
    /**
     * Created by wy on 2016/12/23 023.
     */
    public class TwoStackQueue<T> {
        private Stack<T> s1 = new Stack<>(); // 入队
        private Stack<T> s2 = new Stack<>(); // 出队
    
        public T pop() {
            if (isEmpty()) return null;
            if (!s2.isEmpty()) return s2.pop();
            else {
                while (!s1.isEmpty())
                    s2.push(s1.pop());
                return s2.pop();
            }
        }
    
        public void push(T item) {
            s1.push(item);
        }
    
        public int size() {
            return s1.size() + s2.size();
        }
    
        public boolean isEmpty() {
            return (s1.isEmpty() && s2.isEmpty());
        }
    
        // 测试
        public static void main(String[] args) {
            TwoStackQueue<String> qs = new TwoStackQueue<>();
            for (String s : "qing li si nian chun".split(" "))
                qs.push(s);
            for (int i=0; i<3; ++i)
                System.out.println(qs.pop());
            System.out.println();
            for (String s : "ten zi jing".split(" "))
                qs.push(s);
            while (!qs.isEmpty())
                System.out.println(qs.pop());
    
            TwoStackQueue<Integer> qi = new TwoStackQueue<>();
            for (int i=10; i<100; i=2*i)
                qi.push(i);
            while (!qi.isEmpty())
                System.out.println(qi.pop());
        }
    }
    

      

  • 相关阅读:
    Java提高学习之Object(5)
    cmd命令。
    CacheView。
    快速界面:QML。
    抓包工具。
    打包安装程序。
    AS:加载新版本的SWF文件。
    as自定义菜单。
    as [Frame]元标签
    转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式
  • 原文地址:https://www.cnblogs.com/duanguyuan/p/6214291.html
Copyright © 2011-2022 走看看