題目描述
用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。
package stackAndqueue;
//用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。隊列中的元素爲int類型。
import java.util.Stack;
//當插入時,直接插入 stack1
//當彈出時,當 stack2 不爲空,彈出 stack2 棧頂元素,如果 stack2 爲空,將 stack1 中的全部數逐個出棧入棧 stack2,再彈出 stack2 棧頂元素
public class TwoStackImplQueues {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int size() {
int size = stack1.size() + stack2.size();
return size;
}
public int pop() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
public static void main(String[] args) {
TwoStackImplQueues twoStackImplQueues = new TwoStackImplQueues();
int [] array = {1,2,4,5,7,8};
for (int i = 0; i < array.length; i++) {
twoStackImplQueues.push(array[i]);
}
while(twoStackImplQueues.size() > 0) {
System.out.println(twoStackImplQueues.pop());
}
}
}