프로그래밍/알고리즘

원형 큐

Mt.Hwang 2025. 4. 11. 20:22

 * 원형 큐 (Circular Queue, Ring Buffer)

선형 큐의 단점을 보완
배열 큐의 공간 낭비 문제 해결

보통은 연결리스트로 구현하지 않고 배열로 구현한다
원형 큐의 크기를 N, 혹은 MAX_SIZE로 설정

..~~~~..

 * 원형 큐의 변수

front : 가장 먼저 들어온 데이터의 index

rear : 가장 늦게 들어온 데이터의 다음 index. 정확히는 앞으로 데이터가 들어올 위치

초기값은 front = rear = 0

size = (rear - front + MAX_SIZE) % MAX_SIZE
원소의 개수를 의미

..~~~~..

 * 원형 큐의 모듈러 연산

모듈러 연산 : 나머지 연산자를 구하는 연산
원형 큐에서 사용하는 모듈러 연산은 인덱스를 반복시키기 위해 사용함
인덱스가 배열의 끝에 도달했을 때 처음으로 돌아가게 해줌

삽입, 삭제 시 size와 MAX_SIZE를 비교 후 작업해야됨
 1. 큐가 가득 찬 상태는 size == MAX_SIZE - 1 혹은 rear == front && size != 0
 2. 큐가 빈 상태는 size == 0

작업 후 rear와 front는 크기 변화가 있음
 1. 삭제 시, front = (front + 1) % MAX_SIZE
 2. 삽입 시, rear = (rear + 1) % MAX_SIZE

..~~~~..

'프로그래밍 > 알고리즘' 카테고리의 다른 글

유클리드 호제법 (Euclidean Algorithm)  (0) 2025.04.17
에라토스테네스의 체 (Sieve of Eratosthenes)  (0) 2025.04.17
계수 정렬  (0) 2025.04.11
DFS  (0) 2025.04.10
BFS  (0) 2025.04.10