zoukankan      html  css  js  c++  java
  • 使用两个栈模拟一个队列

    接着上一篇“使用两个队列模拟一个栈”,这里该如何使用两个栈模拟一个队列呢?具体实现如下:

     1     public class Queue<E>{
     2         private Stack<E> s1 = null; //s1作为插入栈
     3         private Stack<E> s2 = null; //s2作为弹出栈
     4         
     5         public Queue(){
     6             s1 = new Stack<E>();
     7             s2 = new Stack<E>(); 
     8         }
     9         //判断队列是否为空
    10         public synchronized boolean isEmpty(){
    11             return s1.isEmpty()&&s2.isEmpty();
    12         }
    13         
    14         //统计队列中元素个数
    15         public synchronized int size(){
    16             return s1.size()+s2.size();
    17         }
    18         
    19         //入队列
    20         public synchronized void put(E data){
    21             s1.push(data);
    22         }
    23         
    24         //出队列(记得要将出完队列
    25         public synchronized E pop(){
    26             if(s2.isEmpty())
    27                 while(!s1.isEmpty())
    28                     s2.push(s1.pop());
    29             return s2.pop();
    30         }
    31     }
  • 相关阅读:
    Spring--AOP
    Database--事务
    Neo4j--UNIQUE约束
    Neo4j--INDEX索引
    排序算法 目录
    数据结构 目录
    设计模式 目录
    建造者模式及应用举例
    模板模式以及应用举例
    真·随笔
  • 原文地址:https://www.cnblogs.com/JiaJoa/p/7783984.html
Copyright © 2011-2022 走看看