队列

队列的定义和特点:
队列是限定只能在表的一端进行插入,在表的另一端进行删除的线性表。允许插入的一端叫队尾,允许删除的一端叫队头。因为先插入的先删除,所以又叫先进先出(FIFO)结构。

那么我们来看一下队列是怎么插入一个元素的:


无标题.png

再看一下删除一个元素:


无标题.png

代码中的逻辑实现方式:
普通队列:数组存储结构实现的队列。
链队列:链表存储结构实现的队列。

循环队列:把数组看出一个首尾相连的圆环,删除元素时将队首标志往后移动,添加元素时若数组尾部已经没有空间,则考虑数组头部的空间是否空闲,如果是,则在数组头部进行插入。

循环队列的意义在于,利用了队头剩余的空间。如下图:


循环队列示意图.png

双端队列:队列的一种变型--双端队列(Double-ended queue),简称为Deque。顾名思义,也就是前端与后端都支持插入和删除操作的队列。(用的不多)

队列的应用:排队。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 5,449评论 0 5
  • 转载请注明出处:http://www.jianshu.com/p/462b42344098 上一篇《数据结构与算法...
    Alent阅读 6,630评论 3 15
  • 栈 栈: 限定仅在表尾进行插入和删除操作的线性表; 后进先出(LIFO)。 在表尾进行操作,表尾是栈顶;最新进栈的...
    IAM四十二阅读 4,657评论 0 2
  • 本书展示了一个投资者的视角。 从前期选项目,中期项目跟进,再到后期退出,整个过程让读者了解投资人是怎么想的,如何才...
    Marshallll阅读 1,094评论 0 0
  • 繁忙的今朝,辛苦的明日。日复一日,今天仍在继续。时光飞逝,成为过往,但记忆永驻心间。考试,面试,事业,恋爱,家庭,...
    喵美男阅读 4,536评论 0 1

友情链接更多精彩内容