큐는 FIFO(first in first out) 선입선출 원리에 따라 정렬된 컬렉션이다.
새 원소는 뒤로 들어가서 앞에서 빠져나가는 구조이다.
따라서 마지막에 추가된 원소는 큐의 뒷부분에서 제일 오래 기다려야 한다.
큐 만들기
큐에서 사용할 메서드는 다음과 같다.
enqueue() : 큐의 뒤쪽에 원소를 추가한다.
dequeue() : 큐의 첫 번쨰 우너소를 반환하고 큐에서 삭제한다.
front() : 큐의 첫 번쨰 원소를 반환하되 큐 자체는 그대로 둔다.
isEmpty() : 큐가 비어있으면 true, 그 외에는 false를 반환한다.
size() : 큐의 원소 개수를 반환한다.
우선순위 큐
원소가 우선순위에 따라 추가되고 삭제되는 점이 다르다.
우선순위 큐는 우선순위를 설정해 원소를 정확한 위치에 추가하는 것, 그리고 추가는 순서대로 하되 삭제만 우선순위에 따르는 것
두 가지 방법으로 구현할 수 있다.
이러한 로직으로 구현한 우선순위 큐를 최소 우선순위 큐라고 부른다.