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}

    }

  • 相关阅读:
    MySql 范式
    MySql 多表关系
    MySql 约束条件
    MySql 枚举和集合 详解
    【RoR win32】新建rails项目找不到script/server的解决办法
    【RoR win32】安装RoR
    【RoR win32】提高rails new时bundle install运行速度
    【bs4】安装beautifulsoup
    【py分析网页】可能有用的-re去除网页上的杂碎
    【pyQuery】抓取startup news首页
  • 原文地址:https://www.cnblogs.com/sunfenqing/p/7460428.html
Copyright © 2011-2022 走看看