본문 바로가기

알고리즘/기타

원형 큐

[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