游乐园的过山车每次限坐 4 人,用循环队列管理排队(容量 MAX=5 ,空一格判满)。下面代码执行后,循环队列是否已满? rear 的值是多少?
const int MAX = 5 ;
int queue [ MAX ];
int front = 0 , rear = 0 ;
// 入队
void enqueue ( int x ) {
queue [ rear ] = x ;
rear = ( rear + 1 ) % MAX ;
}
// 出队
void dequeue () {
front = ( front + 1 ) % MAX ;
}
int main () {
enqueue ( 1 ); enqueue ( 2 ); enqueue ( 3 ); enqueue ( 4 );
dequeue (); dequeue ();
enqueue ( 5 ); enqueue ( 6 );
}
已满, rear = 1
未满, rear = 1
已满, rear = 2
未满, rear = 4