循环队列 MAX=5、留一个空格判满。执行 入队 1,2,3,4,出队 2 次,入队 5,6 后,队列是否已满?rear 是多少?
const int MAX = 5; int q[MAX]; int front=0, rear=0;
void enqueue(int x){ q[rear]=x; rear=(rear+1)%MAX; }
void dequeue(){ front=(front+1)%MAX; }
// enqueue 1,2,3,4; dequeue; dequeue; enqueue 5,6;
- A. 已满,rear = 1
- B. 未满,rear = 1
- C. 已满,rear = 2
- D. 未满,rear = 4
正确答案:A