05_用兩個棧來實現一個隊列

題目描述

用兩個棧來實現一個隊列,完成隊列的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());
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章