2025年环形队列好处(环形队列原理)

环形队列好处(环形队列原理)nbsp 生活中有很多队列的例子 比如说到火车站买票什么的 当然先到先买 派头的买完票就可以出队列了 而想上车的人就要到队列尾排队 我们都是新世纪的好青年 所以我们也不会也不允许插队 而从生活中 我们可以抽象出队列的概念 队列就是一个能够实现 先进先出 FIFO first in first out 的存储结构 队列分为普通队列和环形队列 先讲一讲普通队列 这样有助于理解环形队列的好处 普通队列一般由数组构成 都是先进先出 队列中容量有限制 但是主要不同是在处理方式上



生活中有很多队列的例子,比如说到火车站买票什么的,当然先到先买,派头的买完票就可以出队列了,而想上车的人就要到队列尾排队。我们都是新世纪的好青年,所以我们也不会也不允许插队。而从生活中,我们可以抽象出队列的概念。队列就是一个能够实现“先进先出”(FIFO(first in first out))的存储结构。队列分为普通队列和环形队列。先讲一讲普通队列,这样有助于理解环形队列的好处。

普通队列一般由数组构成。都是先进先出,队列中容量有限制。但是主要不同是在处理方式上。

第一种处理方式:计算机由队头开始处理,前面的处理完,后面的数据移到前面继续处理。这样很明显效率很慢。(如下图)
这里写图片描述
第二种处理方式:计算机从队头开始处理,前面的处理完后,计算机移到下一个单元处理 。这样的话,前面的存储单元用完后就空着,要知道队列容量是有限的,这样便造成了队列的空间浪费。(如下图)
这里写图片描述

环形队列能够很好的解决这个问题,它有如下特点。它是一个首尾相连的FIFO的数据结构,采用数组的线性空间,数据组织简单。能很快知道队列是否满为空。能以很快速度的来存取数据。因为有简单高效的原因,甚至在硬件都实现了环形队列。环形队列广泛用于网络数据收发,和不同程序间数据交换(比如内核与应用程序大量交换数据,从硬件接收大量数据)均使用了环形队列。

环形队列原理内存上没有环形的结构,因此环形队列实上是数组的线性空间来实现。那当数据到了尾部如何处理呢?它将转回到0位置来处理。这个的转回是通过取模操作来执行的。 因此环列队列的是逻辑上将数组元素q[0]与q[MAXN-1]连接,形成一个存放队列的环形空间。为了方便读写,还要用数组下标来指明队列的读写位置。head/tail.其中head指向可以读的位置,tail指向可以写的位置。

先看环形队列头文件了解大概需要实现的内容。

编程小号
上一篇 2025-03-22 08:17
下一篇 2025-03-18 20:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/62800.html