• Algs4-1.4.30一个栈和一个steque实现的双向队列


    1.4.30一个栈和一个steque实现的双向队列。使用一个栈和steque实现一个双向队列(请见练习1.3.32),使得双向队列的每个操作所需的栈和steque操作均摊后为一个常数。
    答:
    图片
    public class E1d4d30<Item>
    {
        Stack<Item> s=new Stack<Item>();
        Steque<Item> ste=new Steque<Item>();
        public boolean isEmpty()
        {
            return s.isEmpty() && ste.isEmpty();
        }
       
        public int size()
        {
            return s.size()+ste.size();
        }
       
        public void pushLeft(Item item)
        {
            ste.push(item);
        }
       
        public Item popLeft()
        {
           
     if(s.isEmpty())
              while(!ste.isEmpty())
                  s.push(ste.pop());
            //
            Item item=s.pop();
            return item;
        }
       
        public void pushRight(Item item)
        {
            ste.push(item);
        }
       
        public Item popRight()
        {
            if(ste.isEmpty())
                while(!s.isEmpty())
                   ste.push(s.pop());
           return  ste.pop();
        }
       
       
        public static void main(String[] args)
        {
            E1d4d30<String> d=new E1d4d30<String>();
            StdOut.printf("Deque is empty:%s ",d.isEmpty());
            d.pushLeft("1");
            StdOut.printf("Deque size is:%d ",d.size());
            d.pushRight("2");
            StdOut.printf("Deque size is:%d ",d.size());
            StdOut.printf("popLeft is:%s ",d.popLeft());
            StdOut.printf("popLeft is:%s ",d.popLeft());
            //
            d.pushLeft("1");
            d.pushRight("2");
            d.pushRight("3");
            StdOut.printf("popLeft is %s ",d.popLeft());
            StdOut.printf("popRight is %s ",d.popRight());
        }
     }


  • 相关阅读:
    Linux程序的执行
    Linux图形操作与命令行
    Linux网络配置
    Zip文件中文乱码问题解决方法(MAC->Windows)
    我只是一直很努力
    Android抓包方法(三)之Win7笔记本Wifi热点+WireShark工具
    Android抓包方法(二)之Tcpdump命令+Wireshark
    Android抓包方法(一)之Fiddler代理
    Android反编译(二)之反编译XML资源文件
    Android反编译(一)之反编译JAVA源码
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854496.html
Copyright © 2020-2023  润新知