首页 > 代码库 > 用两个栈实现队列

用两个栈实现队列

1.插入元素进入队列时,将元素push到stack1中。当有元素出队列时,先将所有元素插入到stack2中,然后进行出栈。出栈结束后,再将剩余元素放回stack1中。这个算法不是最优的。接下来介绍一个从剑指offer中看到的一种算法。

2

技术分享 

入队列:直接将元素插入stack1中。 出队列:如果stack2为空,就将stack1中的全部元素,压入stack2中。如果stack2还为空,就说明当前队列为空。如果stack2不为空,就弹出stack2栈顶元素。 

 

 

import java.util.Stack; public class Queue {         private Stack<Integer> stack1 = new Stack<Integer>();    private Stack<Integer> stack2 = new Stack<Integer>();         public void appendTail(int element){        stack1.push(element);    }         public int deleteHead(){        if(stack2.size() <= 0){            while(stack1.size() > 0){                int data = http://www.mamicode.com/stack1.pop().intValue();"队列为空");            return -1;        }                 int data = http://www.mamicode.com/stack2.pop().intValue(); >

  

用两个栈实现队列