游乐园的过山车每次限坐 $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);
}图的存储方式:邻接矩阵(O(n²)空间,适合稠密图)、邻接表(O(n+m)空间,适合稀疏图)。
有向完全图边数为n(n-1),无向完全图边数为n(n-1)/2。简单图不含自环和重边。
【考点】循环队列|满队列判定条件|取模运算
本题对应 GESP 六级《数据结构》模块核心考点。命题人盯住的是"队列满的判断条件"——六级不再考简单队列,而是用环形结构考察指针回绕的边界处理,这是绝大多数考生栽跟头的地方。