news 2026/8/5 15:07:18

Linux环境下的C语言编程(三十八)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux环境下的C语言编程(三十八)

一、队列的概念

1. 先进先出(FIFO)

队列遵循FIFO原则,这是队列最基本的特性。

特征为
  • 先来的人先服务:最早加入队列的元素最早被处理

  • 保持顺序不变:元素的出队顺序完全由入队顺序决定

2. 线性结构

队列是一种线性数据结构,元素按照严格的线性顺序排列,每个元素最多有一个直接前驱和一个直接后继

3. 操作受限的访问

与数组可以随机访问不同,队列对元素的访问有严格限制:

  • 只能从一端(队头)删除元素

  • 只能从另一端(队尾)添加元素

  • 不能直接访问或修改队列中间的元素

4. 动态增长与收缩

队列的大小在运行时动态变化

  • 入队时增加元素,队列变长

  • 出队时移除元素,队列变短

  • 队列可能为空,也可能达到最大容量

二、队列的抽象图示

1. 队列的基本结构

入队方向 (Enqueue) → [][][][][][] ← 出队方向 (Dequeue) ↑ ↑ 队尾 队头 (Rear) (Front)

图示说明:

  • 水平方向表示队列,左边是队尾(插入端),右边是队头(删除端)

  • 新元素总是从队尾加入

  • 元素总是从队头离开

  • 箭头方向表示数据的流动方向

2. 队列操作动态演示

初始状态(空队列):
队尾 → | | ← 队头 空队列
步骤1:元素A入队
队尾 → | A | ← 队头 队头/队尾都指向A
步骤2:元素B入队
队尾 → | B | A | ← 队头 ↑ ↑ 队尾 队头
步骤3:元素C入队
队尾 → | C | B | A | ← 队头 ↑ ↑ 队尾 队头
步骤4:元素A出队
队尾 → | C | B | | ← 队头 ↑ ↑ 队尾 队头 (元素A已出队)
步骤5:元素D入队
队尾 → | D | C | B | | ← 队头 ↑ ↑ 队尾 队头

3. 循环队列的抽象图示

当使用数组实现队列时,常用循环队列来解决空间浪费问题:

初始状态:

索引: 0 1 2 3 4 [ ] [ ] [ ] [ ] [ ] ↑ ↑ front rear (都指向0)

入队A、B、C后:

索引: 0 1 2 3 4 [A] [B] [C] [ ] [ ] ↑ ↑ front rear

出队A后:

索引: 0 1 2 3 4 [ ] [B] [C] [ ] [ ] ↑ ↑ front rear

入队D、E后(rear绕回起点):

索引: 0 1 2 3 4 [E] [B] [C] [D] [ ] ↑ ↑ rear front (rear在front前面表示队列已满或循环)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 11:19:29

【万字长文】大模型落地实战总结:训练、推理与性能优化算法全解析,解决推理延迟与显存占用挑战!

引言 本文主要总结了大模型落地过程中的训练、推理和性能优化相关算法和实践,并重点分享了大模型在推理与训练中的性能优化方法,针对推理延迟高、显存占用大及计算效率低等核心挑战,介绍包括连续批处理、分块注意力机制、分布式训练等技术&am…

作者头像 李华
网站建设 2026/8/3 18:30:04

穿越机PID参数调节

前言 之前发了一篇用RPY滑块调PID参数的,虽然飞的手感还可以,但是从PTB工具分析后 还是有超调(在飞机的表现就是有回弹),所以想直接调整PID参数来达到理想效果。 直接调整PID 我们取消PRY模式,直接进行P…

作者头像 李华
网站建设 2026/8/3 17:43:01

【RCE】利用 Python 沙箱绕过实现任意代码执行的完整案例分析

本文内容仅供学习交流使用,未经授权不得进行非法渗透测试。 文章目录 背景 1.利用 ctypes 绕过黑名单 2.基于时间回显:time-based Blind 技巧 3.使用 raise 主动回显异常 4.通过 importlib/imp 绕过黑名单导入模块 5.利用写文件 + import 的方式进行自定义模块注入 6.compile…

作者头像 李华