멋사 부트캠프/자료구조
05. 큐(Queue)
cTosMaster
2025. 5. 15. 09:15
1. 큐 구조
선입선출(FIFO)
처음에 들어온 것이 먼저 나가는 구조이다.
주로 우선순위대로 처리해주는 네트워크 패킷 처리, 이벤트 실시간 처리에 활용된다.
2. 큐의 구현
enqueue(item) | 큐에 아이템을 뒤에 추가 |
dequeue() | 큐에서 아이템을 앞에서 제거하고 반환 |
peek() | 큐의 맨 앞 데이터를 확인 (삭제 X) |
isEmpty() | 큐가 비어 있는지 확인 |
size() | 큐의 길이 확인 |
enqueue → [ A, B, C ] → dequeue → [ B, C ]
import java.util.Queue;
import java.util.LinkedList;
public class QueueWithJava {
public static void main(String[] args) {
Queue<String> q = new LinkedList<>();
//enqueue
q.add("A");
q.add("B");
q.add("C");
//dequeue
while(!q.isEmpty()) {
System.out.println(q.poll() + "제거(dequeue)");
}
q.add("minsu");
q.add("mina");
System.out.println("first : " + q.peek() + "size : " + q.size());
}
}
3. 우선 순위 큐
enqueue(일반환자, 우선:1)
enqueue(응급환자, 우선:5)
→ dequeue() → 응급환자 먼저 나감
"가중치"를 두어 우선처리하도록 하는 특수 큐
4. 활용되는 알고리즘
BFS