美文网首页
数组实现队列

数组实现队列

作者: 孤烛 | 来源:发表于2019-11-24 16:30 被阅读0次

为了能更快速,更准确的写出一个队列,提炼出用数组实现队列的几个要素:

1.初始化

1.1队列数组长度

一般用宏的方式,比如

#define MAX_QUEUE_SIZE 100

1.2队列数组

int q[MAX_QUEUE_SIZE] = {0};

1.3首尾指针

首指针为front,尾指针为rear。这里由于个人习惯,将front和rear都初始化为0,这会影响到后面判断空/满的操作。

int front = 0;
int rear = 0;

2.接口函数

2.1队列判满

bool IsQueueFull(int rear, int front) {
    if ((rear + 1) % MAX_QUEUE_SIZE == front) {
        return true;
    } else {
        return false;
    }
}

2.2队列判空

bool IsQueueEmpty(int rear, int front) {
    if (rear == front) {
        return true;
    } else {
        return false;
    }
}

2.3队尾插入

void EnQueue (int val, int rear, int front, int *queue) {
    if (IsQueueFull(rear, front)) {
        return;
    }
    queue[rear] = val;
    rear = (rear + 1) % MAX_QUEUE_SIZE;
    return;
}

2.4队首弹出

int DeQueue(int rear, int front, int *queue) {
    if (IsQueueEmpty(rear, front)) {
        return -1;
    }
    int pop = queue[front];
    front = (front + 1) % MAX_QUEUE_SIZE;
    return pop;
}

相关文章

网友评论

      本文标题:数组实现队列

      本文链接:https://www.haomeiwen.com/subject/zyilwctx.html