* 원형 큐 (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 |