Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 큐(Queue) 클래스 사용법 총정리: FIFO 자료구조의 이해와 활용

큐(Queue)는 선입선출(FIFO, First-In First-Out) 방식으로 객체를 저장하는 컬렉션입니다. 이름 그대로 먼저 들어온 데이터가 먼저 나가는 구조로, 작업 대기열 처리나 순차적인 데이터 관리처럼 항목에 순서대로 접근해야 하는 상황에서 유용하게 사용됩니다.

큐에 새 항목을 추가하는 동작은 인큐(Enqueue), 기존 항목을 제거하는 동작은 디큐(Dequeue)라고 부릅니다.

Queue 클래스의 주요 메서드

다음 표는 C# Queue 클래스에서 자주 사용되는 메서드들을 정리한 것입니다.

번호메서드 및 설명
1public virtual void Clear();
큐에 있는 모든 요소를 제거합니다.
2public virtual bool Contains(object obj);
특정 요소가 큐 안에 존재하는지 여부를 확인합니다.
3public virtual object Dequeue();
큐의 맨 앞에 있는 객체를 제거하고 해당 객체를 반환합니다.
4public virtual void Enqueue(object obj);
큐의 맨 뒤에 객체를 추가합니다.
5public virtual object[] ToArray();
큐의 내용을 새로운 배열로 복사합니다.

Queue 클래스 사용 예제

아래 예제는 Queue 클래스를 활용해 요소를 추가하고 출력하는 과정을 보여줍니다.

using System;
using System.Collections;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            Queue q = new Queue();

            // 요소 추가 (Enqueue)
            q.Enqueue('X');
            q.Enqueue('Y');
            q.Enqueue('Z');

            Console.WriteLine("현재 큐:");
            foreach (char c in q) Console.Write(c + " ");

            Console.WriteLine();

            // 새 요소 'A' 추가
            q.Enqueue('A');

            Console.WriteLine("현재 큐:");
            foreach (char c in q) Console.Write(c + " ");

            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

실행 결과

현재 큐:
X Y Z
현재 큐:
X Y Z A

위 실행 결과에서 볼 수 있듯이, Enqueue() 메서드로 추가된 요소 'A'는 큐의 맨 뒤에 배치됩니다. 만약 이 상태에서 Dequeue()를 호출하면 가장 먼저 들어간 'X'가 제거되고 반환되는데, 이것이 바로 큐의 핵심 특징인 선입선출(FIFO) 구조입니다.