📜  如何在 c 中初始化队列 - 无论代码示例

📅  最后修改于: 2022-03-11 14:55:46.959000             🧑  作者: Mango

代码示例1
#include 

#define MAX_QUEUE_SIZE 100;

typedef struct queue {
    int queue[MAX_QUEUE_SIZE];
    int currSize;
    int head;
    int tail;
} queue;

void initQueue(queue *queue) {
    queue->currSize = 0;
    queue->pos = 0;
    queue->head = 0;
    queue->tail = 0;
}

void enqueue(queue *queue, int e) {
    if (isFull()) printf("Queue is full!");

    queue->queue[queue->tail] = e;
    queue->tail = (queue->tail + 1) % MAX_QUEUE_SIZE;
    q->currSize = q->currSize + 1;
}

int dequeue(queue *queue) {
    if (isEmpty()) printf("Queue is empty!");

    int toDequeue = queue->head;
    queue->head = (queue->head + 1) % MAX_QUEUE_SIZE;
    q->currSize = q->currSize - 1;

    return toDequeue;
}

int isEmpty(queue *queue) {
    return (queue->head == queue->tail);
}

int isFull(queue *queue) {
    return (currSize == MAX_QUEUE_SIZE);
}

int main() {
    /* how do I initialize the queue and enq/deq to test? */
    printf("Hello World!\n");
}