跳至主要內容

队列的基本概念和操作

微信公众号:储凡2021/3/14大约 5 分钟

队列的基本概念和操作

基本概念

队列:和栈一样,是一种操作受限制的线性表,只允许在表的一端进行插入,在表的另外一端进行删除,简称为,常记作:Queue

入队: 向队列中插入元素,也叫做进队

出队: 删除队列元素,也叫做离队

结合生活中排队的经验,在群体素质高、无人插队的情况下(薛定谔排队,噗呲,哈哈哈),一般最早排队的也是最早离队的,和栈的后进先出不一样的是,队列是先进先出的,即:First In Frist Out

Tips

  • 栈:又叫做后进先出的线性表
  • 队列:又叫做先进先出的线性表

队头:允许进行删除操作的一端,也叫做队首,常记作:Front

队尾:允许进行插入操作的一端,常记作:Rear

空队列:不含任何元素的空表,注意这个表是指线性表

基础操作

和栈一样,队列是操作受限的线性表,具有先进先出的特性,不是任何对线性表的操作都可以作为队列的操作。例如:无法随便读取到队列中间的某个数据,需要将前面的元素先出队

  • InitQueue(&Q): 初始化一个队列,构造空队列Q
  • QueueEmpty(Q): 判断队列是否为空,队空返回true,否则返回false
  • EnEmpty(&Q,x): 入队,如果队列Q未满,将x入队,成为新的队尾元素
  • DeEmpty(&Q,&x): 出队,如果队列Q非空,删除队头元素,复制给x返回
  • GetHead(Q,&x): 读取队头元素,如果队列Q非空,则将队头元素赋值给x

更新日志

2024/9/26 04:05
查看所有更新日志
  • 77999-feat: 升级vuepress到最新版本,改造整个项目结构、配置 (#108)
  • 93038-feat: 移除eslint相关配置,引入@antfu/eslint-config,统一约束风格
  • 564c3-feat: 文档内容更新,md文档新增固定链接
  • 15124-feat(markdownlint-cli): 添加markdown文档校验,支持lint脚本自动格式化文档
  • dc1d8-feat: 新增数据结构入门、线性表、栈、队列文章固定链接
  • cd9f4-feat: 408各科导航目录梳理,修改跳转链
  • 4c2c7-docs: 整理一些文档和底稿,调整导航
  • 6a156-feat: 更新文档
  • 80f19-docs: update
  • 8262d-feat: 修复文档,新增算法代码
  • 7bd30-refactor: 配置全局采用ts改写,优化导航栏
  • 9219e-feat: docs目录调整,新增文档 (#2)
  • e2133-fix: docs目录调整,新增manuscript底稿目录
  • 4513e-fix
  • 867b1-refactor(docs):添加自动化脚本,打通发版流程
  • 3911e-merge queue
贡献者: mmdapl,喜欢芝士的妹妹,妹妹下雨回不去,最近在学桌球,chu fan,公众号:Rong姐姐好可爱,142vip.cn