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

C# Queue 클래스 기본기: Enqueue와 Dequeue로 요소 넣고 꺼내기


C#의 Queue(큐) 컬렉션 클래스는 System.Collections 네임스페이스에 포함된 대표적인 자료구조입니다. 큐는 FIFO(First In First Out, 선입선출) 방식으로 요소를 저장하며, 가장 먼저 추가된 요소가 가장 먼저 제거됩니다. 이는 영화관 매표소 앞에서 사람들이 줄을 서고, 먼저 도착한 사람부터 표를 구매하는 것과 같은 원리입니다.

Queue 클래스에는 두 가지 핵심 메서드가 있습니다.

  • Enqueue(): 큐에 값을 추가하는 메서드
  • Dequeue(): 큐에서 값을 꺼내오는 메서드

Enqueue — 큐에 요소 추가하기

Enqueue 메서드를 사용하면 큐의 뒤쪽(rear)에 새로운 항목을 추가할 수 있습니다.

Queue q = new Queue();
q.Enqueue("Two");
q.Enqueue("One");

위 코드에서 "Two"가 먼저 추가되고, 그다음 "One"이 추가됩니다. 따라서 큐의 내부 상태는 ["Two", "One"] 순서가 됩니다.

Dequeue — 큐에서 요소 꺼내기

Dequeue 메서드는 큐의 앞쪽(front)에 있는 요소를 반환함과 동시에 제거합니다. 즉, 가장 먼저 추가된 요소부터 순서대로 꺼내지게 됩니다.

Queue q = new Queue();
q.Enqueue("Two");
q.Enqueue("One");

// 큐의 모든 요소 제거
while (q.Count > 0)
   Console.WriteLine(q.Dequeue());

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Two
One

FIFO 구조의 특성상 먼저 넣은 "Two"가 먼저 출력됩니다. 참고로, 빈 큐에서 Dequeue를 호출하면 InvalidOperationException 예외가 발생합니다. 따라서 위 코드처럼 Count 속성으로 큐에 남아 있는 요소가 있는지 확인한 후 호출하는 것이 안전합니다.