看动画学算法之:队列queue

文章目录

  • 简介
  • 队列的实现
    • 队列的数组实现
    • 队列的动态数组实现
    • 队列的链表实现
  • 队列的时间复杂度

简介

队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构。

想象一下我们日常的排队买票,只能向队尾插入数据,然后从队头取数据。在大型项目中常用的消息中间件就是一个队列的非常好的实现。

队列的实现

一个队列需要一个enQueue入队列操作和一个DeQueue操作,当然还可以有一些辅助操作,比如isEmpty判断队列是否为空,isFull判断队列是否满员等等。

看动画学算法之:队列queue_第1张图片

为了实现在队列头和队列尾进行方便的操作,我们需要保存队首和队尾的标记。

先看一下动画,直观的感受一下队列是怎么入队和出队的。

先看入队:

看动画学算法之:队列queue_第2张图片

再看出队:

看动画学算法之:队列queue_第3张图片

可以看到入队是从队尾入,而出队是从队首出。

你可能感兴趣的:(看动画学算法,队列,java,算法,数据结构,动画)