剑指Offer09—用两个栈实现队列(java版)
题目描述:
标签:栈 设计 队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
代码:
思路分析: 思路同。
class CQueue { Deque<Integer> inStack; Deque<Integer> outStack; public CQueue() { inStack = new LinkedList<Integer>(); outStack = new LinkedList<Integer>(); } public void appendTail(int value) { inStack.push(value); } public int deleteHead() { if(outStack.isEmpty()){ while(!inStack.isEmpty()){ outStack.push(inStack.pop()); } } if(outStack.isEmpty()){ return -1; } return outStack.pop(); } } /** * Your CQueue object will be instantiated and called as such: * CQueue obj = new CQueue(); * obj.appendTail(value); * int param_2 = obj.deleteHead(); */
上一篇:
IDEA上Java项目控制台中文乱码