当前位置:网站首页 > 技术博客 > 正文

用c语言实现循环队列



我们初始化相比链表而言更为简单了,核心就在于申请空间以及将front指针和rear指针内容赋值为0,即指向第0个元素即可(注意第 0个元素内容为空)。

循环队列初始状态

其代码可以表示为:

入队操作同顺序队列的方法,直接将rear向后移动即可,但是要注意判断,如果rear达到了队列的空间上线,将要从头继续开始移动,这里推荐使用余数法,即无论如何求余都是在这片空间内进行操作,防止一次错误执行就直接整体崩溃,而且也相对而言更为简洁,不推荐使用if语句,这样显得比较累赘。

循环队列入队操作

注意进行加一移动位置操作的时候,不能直接q->rear++这样的操作,这样计算机判断优先级会产生让自己意想不到的后果,此外这里还需要进行一次是否队列已满的判断,当我们rear指针的下一个位置就是front的位置的时候,即改循环队列已满。

如图:

循环队列队满状态

其代码可以表示为:

如果顺序队列的出队操作,直接将front进行后移一位即可,注意这时候有一个需要留意的地方,即队列是否为空,当队列为空的时候是无法进行出队操作的。

循环队列出队操作

其代码可以表示为:

遍历操作需要借助一个临时变量储存位置front的位置信息,利用i逐步向后移动,直到i到达了rear的位置即可宣告遍历的结束。


毕竟循环队列只是队列的基本优化,可以使用普通顺序队列的练习题再度练习:

1895题

版权声明


相关文章:

  • java多线程编程实战指南核心篇2024-12-11 21:01:02
  • 栅格布局一般怎么用2024-12-11 21:01:02
  • 弹性盒子布局flex属性2024-12-11 21:01:02
  • linux chmod命令2024-12-11 21:01:02
  • cnt10代码2024-12-11 21:01:02
  • sql触发器的使用及语法2024-12-11 21:01:02
  • 如何搭建uvm验证平台2024-12-11 21:01:02
  • linux include 环境变量2024-12-11 21:01:02
  • 算力100k2024-12-11 21:01:02
  • mysql左连接查询例子2024-12-11 21:01:02