728x90
반응형
SMALL

큐(Queue)는 컴퓨터 과학에서 사용되는 기본적인 자료 구조 중 하나이다. 큐는 '선입선출'(FIFO, First-In-First-Out) 원칙을 따르는 것으로 알려져 있다. 즉, 큐에 먼저 들어간 항목이 먼저 나오게 된다. 이는 실생활에서 줄을 서는 것과 비슷한 개념이다.

큐에서는 주로 다음 네 가지 기본 연산이 사용된다.

  1. Enqueue: 큐의 뒤쪽에 항목을 추가한다.
  2. Dequeue: 큐의 앞쪽에 있는 항목을 제거하고 반환한다. 이 연산을 수행하면, 큐에서 항목이 제거된다.
  3. Front: 큐의 앞쪽에 있는 항목을 확인한다.
  4. IsEmpty: 큐가 비어 있는지 확인한다.

큐는 다양한 분야에서 사용된다. 예를 들어, 운영 체제에서는 프로세스 스케줄링에 큐를 사용하고, 네트워크에서 패킷 전송을 위한 버퍼로서 큐를 사용한다. 또한, 너비 우선 탐색(BFS)와 같은 알고리즘에서도 큐는 핵심적인 역할을 한다.

import java.util.LinkedList;
import java.util.Queue;

public class Main {
    public static void main(String[] args) {
        Queue<Integer> queue = new LinkedList<>();

        queue.add(1);
        queue.add(2);
        queue.add(3);
        System.out.println("Queue: " + queue);

        int removedElement = queue.remove();
        System.out.println("Dequeued element: " + removedElement);
        System.out.println("Queue after dequeue operation: " + queue);

        int frontElement = queue.peek();
        System.out.println("Front element: " + frontElement);
        System.out.println("Queue after peek operation: " + queue);

        boolean isEmpty = queue.isEmpty();
        System.out.println("Is queue empty? " + isEmpty);
    }
}

Integer 타입의 Queue 객체를 생성하고, add 메소드를 사용하여 큐에 원소를 추가하고, remove 메소드를 사용하여 가장 앞의 원소를 제거하고, peek 메소드를 사용하여 가장 앞의 원소를 확인하며, isEmpty 메소드를 사용하여 큐가 비어 있는지 확인한다.

728x90
반응형
LIST

'CS > 알고리즘' 카테고리의 다른 글

DFS(깊이 우선 탐색)  (0) 2023.06.22
동적 계산법  (0) 2023.06.07
스택(Stack)  (0) 2023.06.07
이진 검색 트리(Binary Search Tree, BST)  (0) 2023.05.30
해싱(Hashing)  (0) 2023.05.30

+ Recent posts