zoukankan      html  css  js  c++  java
  • 队列

    像栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除则在另一端进行。

    队列模型

    队列的基本操作是enqueue(入队),它是在表的末端(叫做队尾(rear))插入一个元素,和dequeue(出队),它是删除(并返回)在表的开头(叫做队头(front))的元素。下图显式一个队列的抽象模型。

    JDK中的Queue源码

    public interface Queue<E> extends Collection<E> {
    
       /**
        * data 入队,添加成功返回true,否则返回false,可扩容
        * @param data
        * @return
        */
       boolean add(E e);
    
       /**
        * offer 方法可插入一个元素,这与add 方法不同,
        * 该方法只能通过抛出未经检查的异常使添加元素失败。
        * 而不是出现异常的情况,例如在容量固定(有界)的队列中
        * NullPointerException:data==null时抛出
        * @param data
        * @return
        */
       boolean offer(E e);
    
       /**
        * 返回队头元素,不执行删除操作,若队列为空,返回null
        * @return
        */
       E peek();
    
       /**
        * 返回队头元素,不执行删除操作,若队列为空,抛出异常:NoSuchElementException
        * @return
        */
       E element();
    
       /**
        * 出队,执行删除操作,返回队头元素,若队列为空,返回null
        * @return
        */
       E poll();
    
       /**
        * 出队,执行删除操作,若队列为空,抛出异常:NoSuchElementException
        * @return
        */
       E remove();
    }
    
  • 相关阅读:
    [UOJ#128][BZOJ4196][Noi2015]软件包管理器
    [UOJ#127][BZOJ4195][NOI2015]程序自动分析
    [BZOJ3653]谈笑风生
    Django 数据库查询优化
    C#中引用(ref关键字)参数
    C#中值参数的使用实例
    静态变量和实例变量
    全局变量和局部变量的理解
    C#方法定义和调用-2
    C#函数的方法定义和方法调用小议
  • 原文地址:https://www.cnblogs.com/Tu9oh0st/p/10295132.html
Copyright © 2011-2022 走看看