zoukankan      html  css  js  c++  java
  • 经典算法回顾:两个队列生成一个栈,两个栈生成一个队列

    两个队列生成一个栈

        private void queueToStarkPush(int element){

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

            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();

        }

  • 相关阅读:
    OpenResty 社区王院生:APISIX 的高性能实践
    【社群话题分享】有哪些程序员专属的“土味情话”?
    第一次亲密接触——二狗子初识 CDN
    又拍云叶靖:OpenResty 在又拍云存储中的应用
    【社群话题分享】程序员中年真这么难?
    Zabbix日常监控之lvs监控
    zabbix日常监控Apache2.4
    Centos7 apache2.4.29(httpd) 安装
    grafana的安装与设置(一)
    zabbix日常监控项java(四又分之一,通用性强)
  • 原文地址:https://www.cnblogs.com/csuliujia/p/10768240.html
Copyright © 2011-2022 走看看