zoukankan      html  css  js  c++  java
  • 队列Queue和栈

    1、队列Queue是常用的数据结构,可以将队列看成特殊的线性表,队列限制了对线性表的访问方式,只能从线性表的一段添加(offer)元素,

          从另一段取出(poll)元素,队列遵循先进先出的原则。

    2、JDK中提供了Queue接口,同时使得LinkList实现了该接口,选择LinkList实现Queue的原因是Queue经常要进行添加和删除的操作 ,而LinkList在这方面效率较高。

    3、Queue接口的主要方法:

          1)boolean offer(E  e) 将一个对象添加至队尾,如果添加成功则返回true。

          2)E  poll  从对首返回一个元素,并删除此元素。

          3)E  peek  返回一个元素(但并不删除此元素)

                              public void testQueue() {

                              Queue<String> queue = new LinkedList<String>();

                               queue.offer("a");

                                queue.offer("b");

                                queue.offer("c");

                               System.out.println(queue); // [a, b, c]

                               String str = queue.peek();

                                System.out.println(str); // a

                                while (queue.size() > 0) {

                                 str = queue.poll();

                                System.out.print(str + " "); // a b c}}

    4、Deque是Queue的子接口,定义了所谓的双端队列,即从队列的两端分别可以入队(offer)和出队(poll),LinkList实现了该接口,

         如果将Deque限制为只能从一端入队和出队,则可实现 栈(Stack)的数据结构,对于栈而言,入栈称之为push,出栈称之为pop,栈遵循先进后出的原则。

         使用Deque提供的peek方法,可以查看栈顶元素,并查看栈顶元素。

                          public void testStack() {

                          Deque<String> stack = new LinkedList<String>();

                          stack.push("a");

                          stack.push("b");

                          stack.push("c");

                          System.out.println(stack); // [c, b, a]

                          String str = stack.peek();

                           System.out.println(str); // c

                          //循环删除栈顶元素

                           while (stack.size() > 0) {

                            str = stack.pop();

                            System.out.print(str + " "); // c b a}

    }

  • 相关阅读:
    【PL/SQL练习】函数
    【PL/SQL练习】命名块: 存储过程、函数、触发器、包
    【PL/SQL练习】自定义异常
    织梦首页/列表页文章按权重排序
    织梦dede:channel取子栏目时重复显示同级栏目的解决方法
    织梦最新版后台一键更新网站、更新文档HTML卡死的解决方法
    虚拟主机二级域名(m.dedehtml.com)绑定到织梦子目录(m)做手机站
    织梦自定义表单数据校验不对的解决方法
    织梦自定义表单用js代替联动地区解决联动地区选择
    织梦自定义图片字段调用图片地址
  • 原文地址:https://www.cnblogs.com/sunfenqing/p/7460428.html
Copyright © 2011-2022 走看看