首页 > 代码库 > 用两个栈实现队列
用两个栈实现队列
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(); >
用两个栈实现队列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。