数据结构_队列

github地址:
https://github.com/arkulo56/thought/blob/master/software/dataStruct/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84_%E9%98%9F%E5%88%97.md

队列

https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/queue.png
https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/queue.png

定义

先进先出,特殊的线性表,队头出队尾进

一个个执行的地方都需要用,鼠标点击、cpu处理进程、秒杀活动、键盘打字等等

操作

入队(队尾)、出队(队头)

顺序实现

用数组申明一个空间,然后一个个的存入数据元素

  • 问题1: 0下标的位置是队头,如果出对,后面的元素都要向前挪一位,保持数组中的元素都是从0开始的
  • 问题2: 也可以不向前挪,直接出队,队头的位置下标变为1,这样可能会造成“假溢出”
  • 最好的解决办法: 头指针front,尾指针(rear),加上循环队列(还是那个数组,rear指到最后的时候,可以跳转至0位置),如果是固定长度适合。

循环队列

队列满的条件:(rear+1) % QueueSize == front
队列长度:(rear-front+QueueSize) % QueueSize


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

推荐阅读更多精彩内容