【刷题】面试题09. 用两个栈实现队列
2020-04-02 18:37
477 查看
用两个栈实现一个队列。队列申明如下,请实现两个函数,appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回-1)
因为:队列是先进先出,栈是后进先出,那么将第一个栈的全部数据入栈到第二个栈中,顺序就会变为:后进先出。
class CQueue { Stack<Integer> stack1; Stack<Integer> stack2; public CQueue() { stack1=new Stack<Integer>(); stack2=new Stack<Integer>(); } public void appendTail(int value) { stack1.push(value); } public int deleteHead() { if(stack2.isEmpty()){ if(stack1.isEmpty()){ return -1; }else{ while(!stack1.isEmpty()){ stack2.push(stack1.pop()); } return stack2.pop(); } }else{ return stack2.pop(); } } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 面试题09. 用两个栈实现队列
- leetcode每日一题(2) 面试题09 用两个栈实现队列
- 面试题-----两个栈实现一个队列
- 面试题13 - 用两个栈实现队列 【栈】
- 剑指offer——面试题7:用两个栈实现队列
- 面试题7:用两个栈实现队列
- 数据结构面试题:两个队列实现一个堆栈
- 面试题7:用两个栈实现一个队列
- 剑指offer面试题7——用两个栈实现队列
- 剑指Offer学习之面试题7:用两个栈实现队列
- 《剑指offer》面试题7:用两个栈实现队列
- 剑指offer:面试题9—用两个栈实现队列
- 剑指offer面试题7(java实现):用两个栈实现队列
- 【数据结构】栈面试题--两个队列实现一个栈
- 面试题7:用两个栈实现队列
- 剑指offer 面试题7 用两个栈实现队列
- 剑指offer--面试题7: 用两个栈实现队列
- 【剑指Offer】面试题9:用两个栈实现队列——JS实现
- 剑指Offer---面试题:使用两个栈实现队列
- 09 用两个栈实现队列