news 2026/4/29 19:26:00

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/4/29 9:26:28

linux: gdb调试器

故事背景事实上,gdb调试器,是一个用于我们linux命令行式的调试工具,但是但凡接触过一些vscode或者studio这些图形化的自带图形可视化的调试工具,gdb是确实不好用我还不如自己连一些服务器到vscode呢。 但是gdb依然是功能强大&…

作者头像 李华
网站建设 2026/4/29 20:16:02

做测试还是测试开发,选职业要慎重!

突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测试经历或者说有系统学习过测试的人蛮少的,楼主去年投这个岗位的时候也很迷茫,中间在网上请教过好几位大佬and前辈,这里做一个…

作者头像 李华
网站建设 2026/4/23 16:25:52

COMSOL锂枝晶应力模型:直观易用,专业级仿真解决方案

comsol锂枝晶应力模型,到手就能用。打开COMSOL看到锂枝晶模型就手痒?先别急着点"计算",咱们得把应力场和电化学揉明白了。模型库里的枝晶生长模块虽然自带基础设置,但想要真实模拟SEI膜破裂和机械变形,得自己加亿点点细…

作者头像 李华
网站建设 2026/4/23 9:53:04

SSM物业管理系统429am(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能:小区公告,业主,房屋信息,楼宇信息,员工,缴费信息,车位租用,车位购买,车位信息,临时停放,车辆离开SSM物业管理系统开题报告一、课题背景与意义1.1 课题背景随着我国城市化进程的加速,居民小区的数量与规模不断扩大&#xff…

作者头像 李华
网站建设 2026/4/29 21:53:59

美颜SDK算法工程师实践笔记:滤镜与特效模块的可维护性设计

作为一个深耕美颜SDK的算法工程师,我常常会遇到一种“技术人的倔强”:只想把效果做到极致,却往往忽略了另一个决定产品寿命关键点的要素——可维护性。尤其在滤镜、特效模块这种 更新频率高、参与人员多、跨平台适配复杂 的领域,如…

作者头像 李华