从无到有算法养成篇-栈和队列·队列
【摘要】
一、队列的定义
队列是啥?
数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列。
队列的两个基本操作:入队将一个数据放到队列尾部;出队从队列的头部取出一个元素。
队列的应用:循环队列、阻塞队列、并发队列、优先级队列等。
栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队列的两端...
一、队列的定义
队列是啥?
数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列。
队列的两个基本操作:入队将一个数据放到队列尾部;出队从队列的头部取出一个元素。
队列的应用:循环队列、阻塞队列、并发队列、优先级队列等。
栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队列的两端全是开口,特点是"先进先出"。
队列存储结构的实现有以下两种方式:
- 顺序队列:在顺序表的基础上实现的队列结构;
- 链队列:在链表的基础上实现的队列结构;
两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。
队列的操作
入队(尾部入队)
①将值存入rear所代表的位置。
②rear = (rear+1)%数组的长度。
出队(头部出队)
front = (front+1)%数组的长度。
队列是否为空
front和rear的值相等,则该队列就一定为空。
假溢出
随着入队、出队的进行,会使整个队列整体向后移动,就会出现上图中的现象:队尾指针已经移到了最后,即队尾出现溢出,无法再进行入队操作,然而实际上,此时队列中还有空闲空间,
文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。
原文链接:wenyusuran.blog.csdn.net/article/details/107706056
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)