两个队列生成一个栈

    private void queueToStarkPush(int element){

        //两个队列Q1和Q2,哪个不为空塞哪个,如果两个都为空,则塞Q1

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

        if(queue1.size() == 0 && queue2.size() == 0){

            queue1.add(element);

        }

        if(queue1.size() > 0){

            queue1.add(element);

        }

        if(queue2.size() > 0){

            queue2.add(element);

        }

    }

 

    private int queueToStackPoP(){

     //两个队列Q1和Q2,哪个为空,则从“另个不为空的队列”中取出“除最后一个外的所有元素”存入“为空的队列”

        if(queue2.size() == 0){

            while (queue1.size() > 1){

                queue2.add(queue1.remove());

            }

            return queue1.remove();

        }

 

        if(queue1.size() == 0){

            while (queue2.size() > 1){

                queue1.add(queue2.remove());

            }

            return queue2.remove();

        }

        return 0;

    }

两个栈生成一个队列

    private void stackToQueueAdd(Integer element){

        //两个栈S1和S2,恒定插入S1

        stack1.push(element);

    }

 

    private int stackToQueueRemove(){

        //两个栈S1和S2,若S2为空,则将S1的元素全部压入S2,然后删除S2首元素

        if(stack2.empty()){

            while (!stack1.empty()){

                stack2.push(stack1.pop());

            }

        }

        //若S2不为空,则删除S2首元素

        return stack2.pop();

    }

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄