zoukankan      html  css  js  c++  java
  • Algs4-1.3.48双向队列与栈

    1.3.48双向队列与栈。用一个双向队列实现两个栈,保证每个栈操作只需要常数次的双向队列操作(请见练习1.3.33)。
    答:
    图片
    public class StackDouble<Item>
    {
        private Deque<Item> q=new Deque<Item>();
        ///////////Stack of Left
        private int NLeft=0;
        public boolean isEmptyLeft()
        {return NLeft==0;}
       
        public int sizeLeft()
        {return NLeft;}
       
        public void pushLeft(Item item)
        {
            q.pushLeft(item);
            NLeft++;
        }
       
        public Item popLeft()
        {
           if (NLeft==0) return null;
            Item item=q.popLeft();
            NLeft--;
            return item;
        }
        ///////////Stack of Right
        private int NRight=0;
        public boolean isEmptyRight()
        {return NRight==0;}
       
        public int sizeRight()
        {return NRight;}
       
        public void pushRight(Item item)
        {
            q.pushRight(item);
            NRight++;
        }
       
        public Item popRight()
        {
            if(NRight==0) return null;
            Item item=q.popRight();
            NRight--;
            return item;
        }
       
        public static void main(String[] args)
        {
            StackDouble<String> s=new StackDouble<String>();
            s.pushLeft("1");
            s.pushLeft("2");
            s.pushLeft("3");
            //
            s.pushRight("4");
            s.pushRight("5");
            s.pushRight("6");
            StdOut.println("Stack of Left size is:"+s.sizeLeft());
            StdOut.println("Stack of Right size is:"+s.sizeRight());
            //
            StdOut.println("Stack of Left element is:");
            for(int i=0;i<7;i++)
                StdOut.print(s.popLeft()+" ");
            //
            StdOut.println();
            StdOut.println("Stack of Right element is:");
            for(int i=0;i<7;i++)
                StdOut.print(s.popRight()+ " ");
        }
    }
  • 相关阅读:
    IIs安装&发布&解决遇到的问题
    Silverlight RadChart :创建十字定位&圈选
    桌面小工具,网络时间表
    毕设之c#多线程学习(官方+转载)
    常用的sql语言基础(1)
    转:C# DataGridView控件清空数据出错解决方法
    转:DataTable的Compute方法的应用
    转:判断DATASET是否为空
    转:DataSet、DataTable、DataRow、DataColumn区别及使用实例
    转发:C#加密方法汇总
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854347.html
Copyright © 2011-2022 走看看