kizumi_header_banner_img

是先学算法,先刷题,还是先写日记呢?

加载中

文章导读

队列


avatar
RonF02 2026年3月1日 57

队列就像食堂排队打饭一样,先进先出。

这里依旧用数组模拟。

队列会在队尾插入元素,在队头弹出元素。

我们用q数组用于模拟队列,hh表示头元素下标,tt表示尾部元素下标

        hh   q   tt
|_______|________|________|

硬要画图解释的话就是上面那样子。然后弹出队头就很自然的是hh ++了。队尾插入新元素同栈一样理解即可。

封装代码

// const int N = 1e6 + 10;
struct queue
{
    // 初始化,若tt = -1则0-base,tt = 0 则1-base
    int q[N], tt = -1, hh = 0;
    
    void push(int x)
    {
        q[ ++ tt] = x;
    }
    
    void pop()
    {
        hh ++;
    }
    
    bool empty()
    {
        return hh > tt;
    }
    
    int front()
    {
        return q[hh];
    }
    
    /*
    数组模拟还可以取出队尾元素
    int back()
    {
        return q[tt];
    }
    */
};


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码
RonF02的博客

个人信息

avatar

24
文章
2
评论
1
用户