首页 > 其他 > 详细

模拟队列

时间:2021-08-03 22:21:39      阅读:21      评论:0      收藏:0      [点我收藏+]

模拟队列

队列特征:先进先出

技术分享图片

模拟方式:

定义两个指针表示队头和队尾:head,tail

插入:队尾插入 x,queue[tail++] = x

弹出:队头弹出:head++

判断空:head == tail

访问队首元素:queue[head]

上述操作建立在初始化:head = 0, tail = 0 的基础上

当初始化为:head = 0, tail = -1 时,在插入和判断空的操作上有些许不同:

插入:queue[++tail]

判空:head > tail

例题

829. 模拟队列 - AcWing题库

#include <iostream>
#include <string>
using namespace std;

const int N = 1e5 + 5;
int queue[N], head, tail;

int main()
{
    string op;
    int T, x;
    cin >> T;
    while(T--)
    {
        cin >> op;
        if(op == "push")
        {
            cin >> x;
            queue[tail++] = x;
        }
        else if(op == "pop")
        {
            head++;
        }
        else if(op == "empty")
        {
            cout << (head == tail ? "YES" : "NO") << endl;
        }
        else
        {
            cout << queue[head] << endl;
        }
    }
    return 0;
}

模拟队列

原文:https://www.cnblogs.com/xiongyuqing/p/15095882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!