자료구조 큐 기초

데이터 처리 순서를 보장하는 FIFO(First-In, First-Out) 구조의 선형 자료구조인 큐(Queue)의 메커니즘과 구현 방법을 정리한다.

큐의 핵심 동작

  • Enqueue: 큐의 맨 뒤(Rear)에 데이터를 삽입한다.
  • Dequeue: 큐의 맨 앞(Front)에서 데이터를 꺼낸다.
import java.util.LinkedList;
import java.util.Queue;

public class QueueEx {
    public static void main(String[] args) {
        // 자바에서는 Queue 인터페이스를 LinkedList로 구현하여 사용
        Queue<String> queue = new LinkedList<>();

        // 데이터 삽입 (Enqueue)
        queue.offer("Task 1");
        queue.offer("Task 2");
        queue.offer("Task 3");

        // 데이터 확인 (꺼내지 않고 맨 앞 요소 보기)
        System.out.println("Front: " + queue.peek()); // Task 1

        // 데이터 추출 (Dequeue)
        while (!queue.isEmpty()) {
            System.out.println("Processing: " + queue.poll());
        }
    }
}

큐의 다양한 종류

  • 선형 큐 (Linear Queue): 배열로 구현 시 Dequeue가 발생할 때마다 데이터를 앞으로 당겨야 하는 비효율이 발생한다.
  • 원형 큐 (Circular Queue): 배열의 시작과 끝을 연결하여 메모리 낭비를 해결한 구조다.
  • 우선순위 큐 (Priority Queue): 들어온 순서와 상관없이 우선순위가 높은 데이터가 먼저 나간다.

실전 활용 사례

  • 운영체제: 프로세스 스케줄링 및 입출력 버퍼 관리.
  • 네트워크: 패킷 전송 대기열.
  • 알고리즘: 너비 우선 탐색(BFS)의 방문 노드 관리.

P.S

큐는 순차적인 작업 처리가 필요한 모든 시스템의 기반이 되는 자료구조다.

데이터의 입력과 출력 위치를 엄격히 분리함으로써 작업의 질서를 유지하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts