4.队列与双端队列

1.队列概述

  • 队列(queue)是一种是相对于栈的一种数据结构,它是先进先出(First In First Out)。
    它只可以在尾部添加元素。


    队列
  • 双端队列(deque double ended queue(双端队列))是一种相对于队列的一种数据结构。它可以在尾部和头部插入、移除和获取。
    双端队列

2.队列方法

  • java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。
方法 抛出异常 返回值
插入 add() offer()
删除 remove() poll()
查询 element() peek()
  • java.util.Deque接口,用以支持双端队列的常见操作。该接口扩展了java.util.Queue接口。

|方法|头部抛出异常|尾部抛出异常 |头部返回值|尾部返回值|
|-|-|-|
|插入|addFirst()|offerFirst()|addLast()|offerLast()|
|删除|removeFirst()|pollFirst()|removeLast()|pollLast()|
|查询|getFirst()|peekFirst()|getLast()|peekLast()|

  • LinkedList是一个继承于AbstractSequentialList的双向链表。
    使用LinkedList实现Queue接口来表示队列。
    使用LinkedList实现Deque接口来表示双向队列。
  • Queue<String>queue=newLinkedList<String>();
  • Deque<String> deque = new LinkedList<String>();

3.有意思的例子

  • 怎样用栈来实现一个队列?
    答:使用两个栈A和B,A栈将数据正常进栈,然后出栈进入B栈,从B栈出来的数据就是队列的数据。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 1,530评论 0 5
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,948评论 2 8
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 2,877评论 3 10
  • 因为周六要出差三天,周五晚上得收拾行李准备资料等各种东西,所以需要提前把这周的作业写完,只是我发现写东西对我来说怎...
    KKarin阅读 348评论 0 0
  • 人员部署 宣传部长:张欣云 训练副部:郭佳明 传媒副部:文海丽 设计副部:梁源 在此架构上,吸纳唐筱傑、王曼乐、魏...
    nebula_chain阅读 537评论 0 0