題目:用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列如失。隊(duì)列的聲明如下评汰,請實(shí)現(xiàn)它的兩個(gè)函數(shù) appendTail 和 deleteHead 夺颤,分別完成在隊(duì)列尾部插入整數(shù)和在隊(duì)列頭部刪除整數(shù)的功能镣奋。(若隊(duì)列中沒有元素,deleteHead 操作返回 -1 )
1.定義兩個(gè)全局棧stack 和 temp_stack
2.在構(gòu)造函數(shù)中初始化這兩個(gè)棧
3.appendTail操作直接將元素添加到stack的棧頂
4.deleteHead操作首先將stack中的全部元素悉尾,放入temp_stack突那,然后刪除temp_stack的棧頂元素,即為要?jiǎng)h除的隊(duì)頭元素构眯。最后將temp_stack中元素在全部放入stack中愕难。
```
class CQueue {
? ? Stack<Integer> stack;
? ? Stack<Integer> temp_stack;
? ? public CQueue() {
? ? ? ? stack = new Stack();
? ? ? ? temp_stack = new Stack();
? ? }
? ? public void appendTail(int value) {
? ? ? ? stack.push(value);
? ? }
? ? public int deleteHead() {
? ? ? ? int result = -1;
? ? ? ? if(stack.isEmpty()){
? ? ? ? ? ? return result;
? ? ? ? }else{
? ? ? ? ? ? while(!stack.isEmpty()){
? ? ? ? ? ? ? ? temp_stack.push(stack.pop());
? ? ? ? ? ? }
? ? ? ? ? ? result = temp_stack.pop();
? ? ? ? ? ? while(!temp_stack.isEmpty()){
? ? ? ? ? ? ? ? stack.push(temp_stack.pop());
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return result;
? ? }
}
```