本帖最后由 yunqi 于 2025-12-9 21:00 编辑
[C] 纯文本查看 复制代码 #define QUEUE_SIZE 100
typedef struct {
int data[QUEUE_SIZE];
int front;
int rear;
} CircularQueue;
bool isEmpty(CircularQueue *q) {
return q->front == q->rear;
}
bool isFull(CircularQueue *q) {
return (q->rear + 1) % QUEUE_SIZE == q->front;
}
bool enqueue(CircularQueue *q, int value) {
if (isFull(q)) return false;
q->data[q->rear] = value;
q->rear = (q->rear + 1) % QUEUE_SIZE;
return true;
}
bool dequeue(CircularQueue *q, int *value) {
if (isEmpty(q)) return false;
*value = q->data[q->front];
q->front = (q->front + 1) % QUEUE_SIZE;
return true;
}
|