码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据结构-线性结构-队列


    目录

    队列(Queue)

    队列的顺序存储结构

    队列的顺序存储结构 -入队

    队列的顺序存储结构 -出队

    循环队列

    队列的链式存储结构

    队列的链式存储结构-入队

    队列的链式存储结构-出队

    队列的实现(顺序存储结构和链式存储结构)


    队列(Queue)

    队列(Queue),是具有一定操作限制的线性表。只能在一端插入,在另一端删除。

    • 插入数据:入队(AddQ)
    • 删除数据:出队(DeleteQ)
    • 先进先出:First In First Out(FIFO)

    队列的抽象数据类型描述

    数据对象集:一个有0或多个元素的线性表。

    操作集:

    1. 生成长度为MaxSize的空队列
    2. 判断队列是否已满
    3. 判断队列是否已空
    4. 将元素插入队列中
    5. 将元素从队列中删除并返回

    队列的顺序存储结构

    队列的顺序存储结构组成:一个一维数组、一个记录队列头元素位置的变量front、一个记录队列尾元素的变量rear。

    • 可以声明front=0,rear=-1。每次入队rear+1,每次出队front+1。
    • rear-front=-1时,队列空。
    • rear+1=MaxSize时,队列满。

    队列的顺序存储结构 -入队

    队列的顺序存储结构 -出队

    循环队列

    经过多次的入队和出队,队尾会达到数组的限制,而对头会空出几个位置。为了更好地利用数组的空间,则引入循环队列的概念。

    • 可以声明front=0,rear=-1。每次入队rear+1,每次出队front+1。
    • 循环存入时,rear和front的值一直累加。需要确定front和rear下标时,使用front和rear与数组MaxSize取模。
    • rear-front=-1时,队列空。
    • rear-front+1=MaxSize时,队列满。

    可以看到示例图中的循环队列,下标最大为5。如果不使用循环队列概念,最多能从a1存储到a6,队列就满了。但是经过两次出队后,下标0和1的位置空了,所以a7可以入队到循环队列下标为0的位置。

    队列的链式存储结构

    队列也可以使用一个单链表实现。插入和删除操作分别在链表的两端进行。

    链表的特点是:在链表的头部,做插入、删除操作都方便;在链表的尾部,做插入操作方便,做删除操作不方便。

    • 在链表头部进行出队操作
    • 在链表尾部进行入队操作
    • 需要front和rear分别指向链的头节点的和尾节点。当front不指向任何节点时,队列为空。

    队列的链式存储结构-入队

    队列的链式存储结构-出队

    队列的实现(顺序存储结构和链式存储结构)

    待补充

  • 相关阅读:
    免死金牌?最容易被甩锅的“精神疾病”(非抑郁症)
    LC EDA 学习笔记
    vcruntime140.dll丢失的解决方法?教你如何修复好dll文件
    【Netty 的设计与应用】
    linux-LAMP
    C++基础——内存分区模型
    只需三步,教你搭建一个进销存管理系统!
    Gradle【扫盲】使用简易教程
    【python]python内置函数——ord()/chr()/unichr()字符串与ASCII或UNICODE之间相互转换
    Spring Security-全面详解(学习总结---从入门到深化)
  • 原文地址:https://blog.csdn.net/qq522044637/article/details/126040191
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号