문제 8 · 원형 큐
문제 8 [3점]
원형 큐circular queue가 일반적인 선형 큐queue와 비교하여 가지고 있는 장점(1점)을 서술하고, 삽입(enqueue)과 제거(dequeue) 연산의 수행 방식을 서술(각 1점)하시오.
풀이 및 해설
장점(1점). 배열로 구현한 선형 큐는 dequeue가 반복되면 front가 계속 오른쪽으로 이동하여, 배열 앞쪽에 비어 있는 칸이 생겨도 재사용하지 못합니다. 뒤쪽 끝(rear)이 배열 끝에 닿으면, 앞이 비어 있는데도 "가득 참"으로 판단되는 거짓 오버플로가 생기고, 이를 피하려면 원소들을 앞으로 밀어야 해
원형 큐는 배열의 끝과 처음을 논리적으로 이어 붙여, 뒤쪽이 끝에 닿으면 다시 배열 앞쪽의 빈 칸을 재사용합니다. 덕분에 원소 이동 없이 배열 전체를 낭비 없이 쓸 수 있는 것이 가장 큰 장점입니다.
삽입 enqueue(1점). rear를 원형으로 한 칸 전진시킨 뒤 그 칸에 원소를 넣습니다.
제거 dequeue(1점). front가 가리키는 원소를 꺼낸 뒤 front를 원형으로 한 칸 전진시킵니다.
가득 참/비어 있음은 원소 개수를 세거나 한 칸을 비워 두는 방식으로 구분합니다.