1. 程式人生 > >Java版用棧實現佇列的操作

Java版用棧實現佇列的操作

簡介

  • 用棧實現佇列的操作
public class StackQueue {
    private Stack<Integer> stack;

    public StackQueue(){
        stack=new Stack<Integer>();
    }

    //獲取佇列大小
    public int size(){
        return stack.size();
    }

    //遍歷佇列
    public void show(){
        Stack<Integer> newStack=new Stack<>();
        //實現賦值
        int size=stack.size();
        for(int i=0;i<size;i++){
            int out=stack.pop();
            newStack.push(out);
        }
        //實現輸出+復原
        int size2=newStack.size();
        for(int i=0;i<size2;i++){
            int in=newStack.pop();
            stack.push(in);
            System.out.print(in+" ");
        }
        System.out.println();
    }

    //入隊
    public void in(int element){
        stack.push(element);
    }

    //出隊
    public int out(){
        if(stack.empty()){
            throw new RuntimeException("佇列為空");
        }
        //匯出
        Stack<Integer> newStack=new Stack<>();
        int size=stack.size();
        for(int i=0;i<size;i++){
            int ele=stack.pop();
            newStack.push(ele);
        }
        //獲取返回元素
        int element=newStack.pop();
        //復原
        int size2=newStack.size();
        for(int i=0;i<size2;i++){
            int ele=newStack.pop();
            stack.push(ele);
        }
        return element;
    }
}