其他分享
首页 > 其他分享> > 队列(数组模拟 + STL)

队列(数组模拟 + STL)

作者:互联网

一、模拟

const int N = 1e5 + 10;
int hh = 1, tt = 0;
int que[N];

//队尾插入x
que[++tt] = x;

//返回队尾元素
que[tt];

//返回队头元素
que[hh];

//弹出对头
hh++;

//检查是否非空
hh > tt ? YES : NO;

//队列长度
tt - hh;

二、STL

#include<bits/stdc++.h>
using namespace std;

queue<int> que;

//队尾插入x
que.push(x);

//返回队尾
que.back();

//返回队头
que.front();

//弹出队头
que.pop();

//检查是否为空
que.empty();

//长度
que.size();

例题

Code:

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
int hh = 1, tt = 0;
int que[N];

int main(){
    ios::sync_with_stdio(false);
    int m;
    cin >> m;
    while(m--){
        string op;
        int x;
        cin >> op;
        if(op == "push"){
            cin >> x;
            que[++tt] = x;
        }
        else if(op == "pop")
            hh++;
        else if(op == "empty")
            cout << (hh > tt ? "YES" : "NO") << endl;
        else
            cout << que[hh] << endl;
    }
}

标签:队尾,STL,tt,hh,队列,int,que,数组,op
来源: https://blog.csdn.net/m0_61806404/article/details/122059908