[1. 구현 시 유의 사항]
- 최초 head 와 tail 은 같은 곳을 가리키고 있으며, 이는 empty 한 것을 의미한다.
- 새로운 원소를 push 할 때, 현재 tail 에 다음에 저장한다.
- 새로운 원소를 push 할 때, 현재 tail 의 다음이 head 인 경우 queue 가 full 하므로, 푸쉬 할 수 없다.
- pop 할 때는 head 를 앞으로 한 칸 움직인다.
- pop 할 때 head 와 tail 이 같은 경우, queue 가 empty 하므로 pop 할 수 없다.
- 길이 N 만큼을 위한 원형 큐를 생성 할 때, 실제 배열의 길이는 N+1 이 되어야 한다.
full 한 경우와 empty 한 경우를 비교하기 위해, 한칸이 비어있어야 한다. - head 와 tail 을 앞으로 옮길 때 에는 반드시 모듈러 연산을 해주도록 한다.
배열의 범위를 벗어날 수 있기 때문이다.
N 이 아니라, 실제 배열의 길이 인 N+1 로 해야 한다.
[2. 관련 예제]
'알고리즘 > 기타' 카테고리의 다른 글
플로이드의 모든 쌍 최단거리 알고리즘 (0) | 2022.11.30 |
---|---|
DFS 스패닝 트리 및 edge 의 유형 (0) | 2022.11.22 |
좌표 압축 (0) | 2022.11.07 |
treap (0) | 2022.11.03 |
io 성능 향상 (0) | 2022.11.02 |