더북(TheBook)

27.6 Queue 클래스

Queue 클래스는 Stack 클래스와 달리 먼저 들어온 데이터가 먼저 나옵니다. 일반적으로 은행에서 먼저 온 사람을 처리하는 것처럼 큐(Queue)라는 단어는 기다림 통로(은행 줄서기) 또는 FIFO(First In First Out)(선입선출)로 표현되며, 먼저 들어온 것이 먼저 나가는 형태의 데이터를 다룹니다.

이번에는 Queue 클래스를 사용해 보겠습니다. 다음 내용을 입력한 후 실행해 보세요. 여기에서 Enqueue()는 큐에 데이터를 저장하는 메서드고, Dequeue()는 큐에서 데이터를 출력하는 메서드입니다.

> using System.Collections;
>
> var queue = new Queue(); //① Queue 클래스의 인스턴스 생성
>
> queue.Enqueue(10);       //② 큐(대기 행렬)에 데이터 입력: Enqueue()
> queue.Enqueue(20);
> queue.Enqueue(30);
>
> queue.Dequeue()          //③ 큐에서 데이터 출력: Dequeue()
10
> queue.Dequeue()
20
> queue.Dequeue()
30
> queue.Dequeue()
System.InvalidOperationException: 큐가 비어 있습니다.
  + System.Collections.Queue.Dequeue()

큐 개체에 Enqueue() 메서드로 10, 20, 30 형태로 데이터를 저장한 후 Dequeue() 메서드를 호출하면 다시 10, 20, 30 형태로 순서대로 데이터를 출력하는 구조가 바로 큐 클래스입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.