数据结构:数组模拟队列

2023-11-14

实现一个队列,队列初始为空,支持四种操作:

  1. push x – 向队尾插入一个数 x;
  2. pop – 从队头弹出一个数;
  3. empty – 判断队列是否为空;
  4. query – 查询队头元素。
/*
  数组模拟队列
  队列:先进先出
*/

#include <iostream>

using namespace std;

const int N = 1e5 + 10;

// hh:队头,tt:队尾
int q[N], hh, tt;

// 初始化
void init()
{
    hh = 0;
    tt = -1;
}

// 插入到队尾
void push(int x)
{
    q[++tt] = x;
}

// 弹出队头
void pop()
{
    //  hh在左边,tt在右边
    hh++;
}

// 判断队列是否为空
bool IsEmpty()
{
    if(hh <= tt) return false; // 非空
    else return true; // 空
}

// 取出队头的元素
void query(int &x)
{
    x = q[hh];
}

int main()
{
    init();
    
    int m;
    cin >> m;
    
    while(m--)
    {
        string op;
        int x, k;
        
        cin >> op;
        
        if(op == "push")
        {
            cin >> x;
            push(x);
        }
        else if(op == "pop")
        {
            if(!IsEmpty()) pop();
        }
        else if(op == "empty")
        {
            if(IsEmpty()) cout << "YES" << endl;
            else cout << "NO" << endl;
        }
        else if(op == "query")
        {
            if(!IsEmpty())
            {
                query(k);
                cout << k << endl;
            }
        }
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构:数组模拟队列 的相关文章

随机推荐

  • 进厂拧了4年螺丝,零基础自学python月入过万,一切都来之不易

    前言 种子放在水泥板上就会被晒死 放在水里就会被淹死 但是放在肥沃的土壤里 就会生根发芽 选择可以决定命运 环境可以造就人生 今天给大家分享一位从工厂到程序员小哥的逆袭之路 就是这样一个在朋友眼里的满是羡慕的高薪工作 或许只有只有我自己 才
  • 在 Mac 上升级 pip

    遇到的问题 终端安装包时 会有以下提示 pip install upgrade pip WARNING You are using pip version 20 2 3 however version 21 0 1 is available
  • C++基础知识(十四)--- vector容器

    目录 1 数据结构 线性连续空间 2 迭代器 随机迭代器 三 vector容器动态增长原理 四 vector 常用API 1 vector 构造函数 2 vector 赋值操作 3 vector 大小操作 swap 的使用 缩小容量 4 v
  • 如何创建指向目录的链接

    本文翻译自 How to create a link to a directory closed How to create a link xxx to home jake doc test 2000 something 如何创建到 hom
  • 史上最全

    点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 BEV综述 获取论文 后台回复 ECCV2022 获取ECCV2022所有自动驾驶方向论文 1摘要 以视觉为中心的俯视图 BE
  • 【HBZ分享】Redis如何与Mysql做数据同步,有几种方法?

    1 Mysql查完数据 再同步写入到Redis中 缺点1 会对接口造成延迟 因为同步写入redis本身就有延迟 并且还要做重试 如果redis写入失败 还需要重试 那就更费时间了 缺点2 不解耦 如果redis崩了 那直接卡线程了 缺点3
  • Java:简述try-catch-finally中return返回

    Java 简述try catch finally中return返回 Java 详解Java中的异常 Error与Exception Java 简述Java中的自定义异常 Java 简述throw throws异常抛出 Java 简述try
  • 字符串:找第一个只出现一次的字符(python实现)

    题目描述 给定一个只包含小写字母的字符串 请你找到第一个仅出现一次的字符 输入 一个字符串 长度小于100000 输出 输出第一个仅出现一次的字符 若没有则输出no 样例输入 abcabd 样例输出 c 思路1 统计各个字符出现的次数 然后
  • js Base64加密

    base64加密开始 var keyStr ABCDEFGHIJKLMNOP QRSTUVWXYZabcdef ghijklmnopqrstuv wxyz0123456789 function encode64 input var outp
  • 基于springboot & vue-admin-template 框架下的前后端分离开发,《文件上传》业务逻辑与el-upload组件详解,静态路径与动态路径

    springBoot vue admin template框架下的文件传输 我想实现的内容 前端部分代码的实现 el upload的学习与拓展 文件的upload与download 文件的show 回显 后端部分代码的实现 upload接口
  • Mysql中IFNULL , ISNULL, NULLIF这三个函数的相爱相杀

    IFNULL expr1 expr2 用法 假如expr1不为NULL 则 IFNULL 的返回值为expr1 否则其返回值为 expr2 IFNULL 的返回值是数字或是字符串 具体情况取决于其所使用的语境 以实际例子查看 SELECT
  • Charles软件使用

    Charles是通过将自己设置成系统的网络访问代理服务器 使得所有的网络访问请求都通过它来完成 从而实现了网络封包的截取和分析 安装Charles 去 Charles 的官方网站 http www charlesproxy com 下载最新
  • linux qt 动态链接库 静态链接库 学习笔记

    转自 http hi baidu com codeworkman item fa434498290bd38e591461d6 hello h ifndef HELLO H define HELLO H extern C void hello
  • Python中的面向对象编程的一些基本概念总结

    一 一些专有词汇的定义 面对对象编程 OOP object oriented programming 是一种程序设计范型 同时也是一种程序开发的方法 实现OOP的程序希望能够在程序中包含各种独立而又相互调用的对象 没一个对象又都应该能够接受
  • 转载Faster-rcnn理解

    文章转自https blog csdn net Lin xiaoyi article details 78214874 仅供方便自己学习 如有侵权请联系删除 效果图 作者 提到目标检测 就不得不RBG大神 该大神在读博士的时候就因为dpm获
  • CSDN第一篇博客,找工作日记第一篇

    今天结束了UC公司的几轮面试 不确定能否拿到offer 但回顾近几天的校招情况 比起十一之前不顺利的过程来说的确让人欣慰了很多 最近考了很多公司的笔试 也面过4399 UC TP LINK等等 峰回路转地明天还要参加百度的面试 当然还有菲音
  • C#程序演示Console.Write()和Console.WriteLine()的示例

    Console Write and Console WriteLine methods are used to print the text values on the Console Console Write prints only t
  • Postgresql查询每组的前N条记录

    Postgresql以指定字段分组后 查询每组的前N条记录 主函数 ROW NUMBER OVER PARTITION BY 省份名称 地市名称 ORDER BY arpu desc dou DESC AS row id 在原有数据表的基础
  • ORA-01157报错"cannot identify/lock data file"

    sqlplus以管理员方式接入数据库 启动时出现报错 如下 gt sqlplus as sysdba SQL gt startup ORA 01157 cannot identify lock data file 8 see DBWR tr
  • 数据结构:数组模拟队列

    实现一个队列 队列初始为空 支持四种操作 push x 向队尾插入一个数 x pop 从队头弹出一个数 empty 判断队列是否为空 query 查询队头元素 数组模拟队列 队列 先进先出 include