从无到有算法养成篇-栈和队列·队列

举报
格图洛书 发表于 2021/11/19 00:41:50 2021/11/19
【摘要】 一、队列的定义 队列是啥? 数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列。 队列的两个基本操作:入队将一个数据放到队列尾部;出队从队列的头部取出一个元素。 队列的应用:循环队列、阻塞队列、并发队列、优先级队列等。 栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队列的两端...

一、队列的定义

队列是啥?

数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列。

队列的两个基本操作:入队将一个数据放到队列尾部;出队从队列的头部取出一个元素。

队列的应用:循环队列、阻塞队列、并发队列、优先级队列等。

栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队列的两端全是开口,特点是"先进先出"。

队列存储结构的实现有以下两种方式:

  1. 顺序队列:在顺序表的基础上实现的队列结构;
  2. 链队列:在链表的基础上实现的队列结构;

两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。

队列的操作

入队(尾部入队)
  ①将值存入rear所代表的位置。
  ②rear = (rear+1)%数组的长度。
出队(头部出队)
  front = (front+1)%数组的长度。
队列是否为空
  front和rear的值相等,则该队列就一定为空。

假溢出

随着入队、出队的进行,会使整个队列整体向后移动,就会出现上图中的现象:队尾指针已经移到了最后,即队尾出现溢出,无法再进行入队操作,然而实际上,此时队列中还有空闲空间,

文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。

原文链接:wenyusuran.blog.csdn.net/article/details/107706056

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。