码迷,mamicode.com
首页 > 其他好文 > 详细

两个栈实现一个队列的添加、删除功能

时间:2015-06-05 15:47:15      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:两栈-替代-队列

栈的特点是“先进后出”,队列的特点是“先进先出”;向队列中依次添加元素n、m,当删除时,先删除应该是n;向栈1中添加元素n、m,当要删除时,把栈1的元素添加到栈2中,元素n刚好位于栈顶,n就会被先删除,正好实现了队列的特点。代码如下,已测。

public class Queue {

    private Stack<String> stackOne=new Stack<String>();
    private Stack<String> stackTwo=new Stack<String>();

      //添加元素
      public void add(String str){
          stackOne.push(str);
      }

      //删除元素
      public void delete(){
         if(stackTwo.isEmpty()){
            while(!stackOne.isEmpty()){
               stackTwo.push(stackOne.pop());
            }
         }
        if(stackTwo.isEmpty()){//栈1和栈2都为空时候
           System.out.println("queue is empty");
        }
        else{
            stackTwo.pop();
        }     
     }
}

两个栈实现一个队列的添加、删除功能

标签:两栈-替代-队列

原文地址:http://blog.csdn.net/qq_16687803/article/details/46377285

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!