Algorithm/자료구조 & 알고리즘
Queue, PriorityQueue, Deque
pinevienna
2021. 7. 28. 13:47
Queue도 stack과 마찬가지로 데이터를 저장하기 위한 자료구조 중 하나다
하지만 구조가 다르다
stack은 LIFO 구조였다면, queue는 선입선출, FIFO(First In First Out) 구조를 가진다
이렇게!!! 아 맞다 오른쪽이 Queue
queue 역시 push, pop과 같은 역할을 하는 add/offer, remove/poll 이 있고
peek과 유사한 element와 peek 메서드도 있다
각각 exception을 발생시키냐 아니냐의 차이인데 전자쪽이 발생시키는 쪽이다
PriorityQueue는 우선순위 큐라고 하는데, 우선순위가 높은 것부터 꺼내는 특징이 있다
일반 queue는 LinkedList를 사용하는 것과 달리 pq는 배열에 데이터를 저장하며,
'힙(heap)' 구조로 저장한다 (가장 큰 값이나 가장 작은 값을 빠르게 찾을 수 있음)
Deque은 queue의 변형으로, 양쪽에서 추가/삭제가 가능하다
스택과 큐를 하나로 합쳐놓은 것과 같으며
스택으로 사용할 수도 있고, 큐로 사용할 수도 있다