飞道的博客

数据结构复习笔记——队列(c语言)

378人阅读  评论(0)

队列的概念和应用场景

1.概念

队列:只允许在一端插入数据,在另一端进行删除数据
入队列:进行插入数据的一端为队尾
出队列:进行删除数据的一端为对头
队列的特点:先进先出,后进后出

2.应用场景

队列的在现实生活的应用场景有很多,例如医院排号,手机营业厅排号,当先来的拿到的票就比较靠前,所以就先办理业务
如下图的营业厅中的场景:

队列的接口实现

队列可以用链表和数组来实现,但使用链表的效率更高一些,如果使用数组实现的话,数据在出队列是在数组的头上出队列,所以删除第一个数据后,要对后面的数据从后往前挪动一位。

1.节点的创建

既然要使用链表的方式来表示队列,必然少不了节点创建

2.队列的创建

3.队列的初始化

刚开始队列没有一个节点,所以需要把队列的头指针和尾指针都置成NULL

4.队列的销毁

5.判断是否为队列是否为空

如果队列为空,则该返回真,如果不为空,则返回假

6.尾插数据

队列的数据是从尾部插入的,所以将一个数据插入到队列,首先需要创建一个新节点,然后再将数据录入新节点中,再通过队列的尾指针将新节点连接起来。

7.队列第一个数据的删除

队列的删除数据是从队头进行删除的,首先需要判断队列是否为空,若为空则队列则不需要删除,还有一个点就是需要注意删除时,队列是否只剩下最后一个节点,若只剩下最后一个节点,则需要把队列的头指针和尾尾指针进行置空,否则会出现野指针的情况

8.求队列中数据的个数

求队列中数据的个数。有多少个节点则就有多少个数据,需要对队列从头到尾各个节点遍历一遍,直到遇见空指针就结束。

9.求队列的首个元素

10.求队列最后一个元素

完!


转载:https://blog.csdn.net/sjp11/article/details/116305111
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场