队列模板

Posted gzu_zb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列模板相关的知识,希望对你有一定的参考价值。

//队列:队首出,队尾进(先进先出表)
#include<iostream>
using namespace std;

const int MAXN = 1000 + 5;

struct Queue {
    int *queue;
    int front;
    int rear;
    int len;
};

//初始化队列
void InitQueue(Queue& Q) {
    Q.queue = new int[MAXN];
    Q.front = Q.rear = 0;
    Q.len = 0;
}

//入队
void InsertQueue(Queue& Q, int item) {
    Q.rear = (Q.rear + 1) % MAXN;
    Q.queue[Q.rear] = item;
    Q.len++;
}

//清空队列
void ClearQueue(Queue& Q) {
    if (Q.queue != NULL) delete[] Q.queue;
    Q.front = Q.rear = 0;
    Q.queue = NULL;
    Q.len = 0;
}

//出队
void PopQueue(Queue& Q) {
    Q.front = (Q.front + 1) % MAXN;
    Q.len--;
}

//求队首元素
int PeekQueue(Queue Q) {
    return Q.queue[(Q.front + 1) % MAXN];
}

//判断队列是否为空
bool EmptyQueue(Queue Q) {
    return Q.front == Q.rear;
}

int main() {
    Queue Q;
    InitQueue(Q);

    int a[] = { 2,4,5,6,7,9,10,3 };
    int l = sizeof(a) / sizeof(int);
    for (int i = 0; i < l; i++) {
        InsertQueue(Q, a[i]);
    }
    
    cout << Q.len << endl;//输出队列的长度

    cout << PeekQueue(Q) << endl;//查看队首元素

    PopQueue(Q);//删除队首元素
    PopQueue(Q);//删除队首元素

    //依次输出队列的元素
    while (!EmptyQueue(Q)) {
        cout << PeekQueue(Q) << " ";
        PopQueue(Q);
    }

    ClearQueue(Q);//清空队列
    return 0;
}

 

以上是关于队列模板的主要内容,如果未能解决你的问题,请参考以下文章

# Java 常用代码片段

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)

Eclipse 中的通用代码片段或模板

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段