常考知识点-队列讲解

举报
Linux猿 发表于 2021/11/25 22:36:46 2021/11/25
【摘要】 🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊! 🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


在北工大历年考研数据结构中,队列是一个常考知识点,不但要掌握好队列的基本性质:队列的出队、入队、队列指针的操作等,还要学会与其它知识点的结合,比如:图的广度优先搜索、树的层次遍历等。接下来小编就为大家介绍下队列。

一、什么是队列?

举个栗子,当你在食堂买饭的的时候,需要排队,先排队的人可以先打饭,一个一个来,等前面人打饭结束之后,后面才能打饭,而后来的人需要排在队伍的后面,不能插队,即先进先出。同时,一定要与栈区分开,栈是先进后出。

二、性质

1、队列只允许在一端插入数据,另一端删除数据。允许插入的一端称为队尾,允许删除的一端称为队头。

2、队列是一种先进先出的线性表。

3、队列在C++STL中的基本操作如下:

queue<int> Q;//申请一个int类型的队列

Q.front(); //获取队列首元素

Q.push();//将元素压入队列,如Q.push(2);

Q.pop();//删除队首元素

Q.empty();//判断队列是否为空,为空返回真

Q.size();//获取队列元素的个数

三、真题解读:

北京工业大学2014年硕士研究生入学考试试题--896

填空题:

在图的广度优先搜索遍历算法中,使用的辅助结构是________。

【解题思路】

图的遍历是指从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的广度优先遍历一般是先遍历到的顶点先访问,然后访问与该顶点相关的顶点入队,该性质和队列的性质相符合,故采用队列进行操作。

图的广度优先遍历使用队列方法,任意找出一顶点,先放入队列中,然后依次查找与该顶点相关的其他顶点,同时删除队首,以新的队首元素继续遍历与该节点相关的顶点;循环执行即可获得图的广度优先遍历。

如下图,该图为5个顶点的无向图。

图的广度优先遍历队列的存储过程如下,其中front表示队首位置,front之前均为已出队的数据。

四、小结

关于队列的知识点还有循环队列、双向队列,循环队列可以防止队列元素溢出,充分利用空间;双向队列两端都可插入和删除,便于操作,后续会针对循环队列和双向队列进行更为详细的讲解,敬请期待!


CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

欢迎小伙伴们点赞👍、收藏⭐、留言💬


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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