다음은 C 언어를 사용하여 원형 큐(circular queue)의 삽입(enqueue)과 삭제(dequeue) 연산을 구현한 것이다.
int Q[8] = {0};
int front = 0;
int rear = 0;
void enqueue(int item)
{
rear = (rear + 1) % 8;
if (front == rear) {
printf("Queue is full.\n");
return;
}
Q[rear] = item;
}
int dequeue()
{
int item;
if (front == rear) {
printf("Queue is empty.\n");
exit(1);
}
else {
front = (front + 1) % 8;
item = Q[front];
Q[front] = 0;
return item;
}
} front와 rear의 값이 0인 공백 큐에 6개의 값 1, 3, 2, 4, 8, 6을 차례대로 삽입하고, 여기에서 2개의 값을 삭제한 다음, 다시 3개의 값 5, 7, 9를 차례대로 삽입할 때, 배열 Q의 최종 모습은?
Q[0] | Q[1] | Q[2] | Q[3] | Q[4] | Q[5] | Q[6] | Q[7] |
- ①07924865
- ②24865790
- ③79024865
- ④90248657
선지를 골라 바로 채점해 보세요.
정답 ③
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)