栈和队列
创建:2023-11-13 10:43
更新:2023-11-13 10:44
  1. 用栈实现队列

    一个进栈,一个出栈。
    push到进栈,
    pop时判断出栈是否为空,如果是空则将进栈转移到出栈,否则直接弹出栈顶元素

    //双栈实现
    Stack<T> stack1 = new Stack<>(); // 进入队列
    Stack<T> stack2 = new Stack<>(); // 出队列
    
    public void push(T obj){
        stack1.push(obj);
    }   
    
    public T pop(){
        if(!stack2.isEmpty()){
            return stack2.pop();
        }
        if(stack1.isEmpty()){
            return null;
        }
        while(!stack1.isEmpty()){
            stack2.push(stack1.pop());
        }
        return stack2.pop();
    }