15.3栈的应用

队列

定义:一种可以实现“先进后出”的存储结构

分类:

  • 链式队列 ------ 用链表实现
  • 静态队列 ------ 用数组实现

    静态队列通常必须是循环队列

    循环队列的讲解:对队列长度取余来表示指针位置

    1. 静态队列为什么必须是循环队列

    2. 循环队列需要几个参数来确定

      • 两个参数
      • 两个参数不同场合有不同含义
    3. 循环队列各个参数的含义:初学者记住

      1. 队列初始化:

        font和rear的值都是零

      2. 队列非空

        font代表的是队列的第一个元素

        rear代表的是队列的最后一个有效元素的下一个元素

      3. 队列空:

        font和rear的值相等,但不一定是零

    4. 循环队列入队伪算法讲解

      • 两步完成:

        1. 将值存入r所代表的位置

        2. 错误写法:r = r+1

          正确写法:r = (r + 1) % 数组的长度

    5. 循环队列出队伪算法讲解

      • f = (f + 1) % 数组的长度
    6. 如何判断循环队列是否为空

      • front和rear相等,则队列一定为空
    7. 如何判断循环队列是否已满

      • 预备知识:

        front 和 rear之间,因为循环周期的存在不存在大小规律

      • 两种方式:

        1. 多增加一个表标识参数

        2. 少用一个元素(通常使用第二种方式)

        3. 伪代码:

          if( (r+1)%数组长度 == f )

          ​ 已满

          else

          ​ 不满

初学者先记住,后体会

  1. 队列初始化:

    font和rear的值都是零

  2. 队列非空

    font代表的是队列的第一个元素

    rear代表的是队列的最后一个有效元素的下一个元素

  3. 队列空:

    font和rear的值相等,但不一定是零

专题:

posted @   夜月明  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示