当前位置: 首页 > news >正文

第4章栈和队列:队列基础知识

4.5 队列

前面介绍的栈是一种操作受限的线性表,本节开始介绍的队列(Queue)是另外一种操作受限的线性表,其限制为仅允许在表的一端进行插入操作,而在表的另一端进行删除操作(如图 4.5.1 所示)。

  • 允许进行插入操作的一端称为队尾(Rear);
  • 允许进行删除操作的一端称为队头或队首(Front)。

向队列中插入新元素称为入队或进队(Enqueue),新元素进队后就成为新的队尾元素。

从队列中删除元素称为出队或离队(Dequeue),元素出队后,其直接后继元素就成为队首元素。

在这里插入图片描述

图 4.5.1 队列

由于队列的插入和删除操作分别是在各自的一端进行的,每个元素必然按照进入的次序出队,所以队列的特点是:先进先出表(First In First Out,FIFO)。

队列可以想象为日常生活中排队等待服务的场景(例如排队购票),先来的人先得到服务并离开队伍,后来的人只能排在队尾。

队列和栈都是操作受限的线性表(这是它们相同的地方),但它们的逻辑特性有所不同:

特性队列(Queue)栈(Stack)
操作原则先进先出(FIFO)后进先出(LIFO)
插入操作在队尾(Rear)进行,称为入队(Enqueue)在栈顶(Top)进行,称为入栈(Push)
删除操作在队头(Front)进行,称为出队(Dequeue)在栈顶(Top)进行,称为出栈(Pop)
读取操作读取队头元素(Front)读取栈顶元素(Top/Peek)
典型比喻排队(先到先得)摞盘子(后放的先取)
应用场景广度优先搜索、任务调度、缓冲区等深度优先搜索、函数调用、表达式求值等
http://www.dtcms.com/a/348821.html

相关文章:

  • pom.xml 标签整理各个标签的用途和含义
  • 蓝凌EKP产品:从 XML 到 JSON ——表单存储的性能优化实践
  • 前端漏洞(上)- CSRF漏洞
  • 强光干扰下误检率↓79%!陌讯动态决策算法在安全带检测的实战优化
  • Redis详解--基本篇
  • Linux 的 TCP 网络编程常用API
  • 网络流量分析——使用捕获和显示过滤器查询网络流量
  • 每天自动备份oracle
  • 关于熵减 - 力学单位和来源
  • 安装gitlab
  • C++ AOV 拓扑排序
  • pyecharts可视化图表-scatter:从入门到精通
  • 2020/12 JLPT听力原文 问题二 5番
  • 【网络运维】Shell 脚本编程:case 条件语句
  • 【大语言模型 18】Vision Transformer革命解析:图像理解的范式突破与架构创新
  • VsCode使用SFTP连接Linux
  • 油雾干扰下误报率↓76%!陌讯动态感知算法在卸油作业安全识别中的实战突破
  • Java:HashSet的使用
  • 【MySQL】CRUD基础详解
  • 基于 Redis + JWT 的跨系统身份共享方案
  • HTTP数据之旅:一个网络请求的完整冒险
  • Unity的Cursor.lockState
  • 油雾环境下漏检率↓79%!陌讯多模态检测算法在加油站智能巡检的落地实践
  • VMware Workstation 不可恢复错误:(vcpu-0)
  • 强反射场景漏检率↓89%!陌讯动态感知算法在护目镜合规检测的实战解析
  • 二叉树学习笔记
  • MyBatis 和 MyBatis-Plus对比
  • 【GEE+Python 实战】用 Sentinel-2 监测 2024 年研究区 NDVI 变化(附完整源码与避坑指南)
  • 深入解析十大经典排序算法原理与实现
  • 理想汽车智驾方案介绍 2|MindVLA 方案详解