考研 408 × 求职面试
知识点 · 数据结构 · 进阶
每日一题 · 数据结构
解析
面试小贴士 · 数据结构
代码实现 · C
#include <stdio.h>
#define MAX 6
typedef struct { int data[MAX]; int front, rear; } Queue;
void init(Queue *q) { q->front = q->rear = 0; }
int empty(Queue *q) { return q->front == q->rear; }
int full(Queue *q) { return (q->rear + 1) % MAX == q->front; }
int enqueue(Queue *q, int x) {
if (full(q)) return 0;
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAX;
return 1;
}
int dequeue(Queue *q, int *x) {
if (empty(q)) return 0;
*x = q->data[q->front];
q->front = (q->front + 1) % MAX;
return 1;
}
int main() {
Queue q; init(&q);
printf("empty=%d full=%d", empty(&q), full(&q));
enqueue(&q, 1); enqueue(&q, 2);
printf("empty=%d full=%d", empty(&q), full(&q));
return 0;
}