用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型
- 隊列和棧是受限制的線性表,棧是后進先出,隊列是先進后出。
- 數據先進棧,然后出棧進第二個棧的順序正好與隊列一致。但是不能考慮在實際操作過程中,進隊與出隊交替進行的情況。
- 這對隊列的Pop()操作提出了要求,要保持隊列的出隊順序的一致,必須要求
- 如果第二個棧有內容,可以直接pop()
- 如果第二個棧為空,必須把第一個棧里面的全部內容放到第二個棧,才能pop()
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if(!stack2.empty()) {
return stack2.pop();
} else {
while(!stack1.empty()) {
stack2.push(stack1.pop());
}
return stack2.pop();
}
}
}