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

C# Queue.Enqueue() 메서드 – 큐에 요소를 추가하는 방법

C#의 Queue.Enqueue() 메서드는 큐(Queue)의 맨 뒤에 객체를 추가할 때 사용합니다. 큐는 선입선출(FIFO, First-In-First-Out) 방식으로 동작하는 자료구조이기 때문에, Enqueue()로 추가된 요소는 항상 대기열의 끝에 순서대로 저장됩니다.

구문

메서드 구문은 다음과 같습니다.

public virtual void Enqueue (object ob);

여기서 매개변수 ob는 큐에 추가할 객체를 의미합니다.

예제 1

먼저 기본적인 사용 예제를 살펴보겠습니다.

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      Queue<string> queue = new Queue<string>();
      queue.Enqueue("Gary");
      queue.Enqueue("Jack");
      queue.Enqueue("Ryan");
      queue.Enqueue("Kevin");
      queue.Enqueue("Mark");
      queue.Enqueue("Jack");
      queue.Enqueue("Ryan");
      queue.Enqueue("Kevin");
      Console.Write("Count of elements = ");
      Console.WriteLine(queue.Count);
      Console.WriteLine("Queue...");
      foreach(string i in queue){
         Console.WriteLine(i);
      }
      queue.Dequeue();
      queue.Dequeue();
      Console.WriteLine("Queue...UPDATED");
      foreach(string i in queue){
         Console.WriteLine(i);
      }
      Console.Write("Count of elements (updated) = "+queue.Count);
      queue.Clear();
      Console.Write("\nCount of elements (updated AGAIN) = ");
      Console.WriteLine(queue.Count);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Count of elements = 8
Queue...
Gary
Jack
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Queue...UPDATED
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements (updated) = 6
Count of elements (updated AGAIN) = 0

실행 결과를 보면 Enqueue()로 8개의 요소가 추가된 후, Dequeue()를 두 번 호출하여 큐 맨 앞의 "Gary"와 "Jack"이 제거되어 요소 수가 6개로 줄어든 것을 확인할 수 있습니다. 마지막으로 Clear() 메서드를 호출하면 큐의 모든 요소가 삭제되어 Count가 0이 됩니다.

예제 2

이번에는 초기 생성 후 중간에 요소를 추가로 삽입하는 예제입니다.

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      Queue<string> queue = new Queue<string>();
      queue.Enqueue("Gary");
      queue.Enqueue("Jack");
      queue.Enqueue("Ryan");
      queue.Enqueue("Kevin");
      queue.Enqueue("Mark");
      Console.WriteLine("Queue...");
      foreach(string i in queue){
         Console.WriteLine(i);
      }
      Console.Write("Count of elements = ");
      Console.WriteLine(queue.Count);
      queue.Enqueue("Jack");
      queue.Enqueue("Ryan");
      queue.Enqueue("Kevin");
      Console.WriteLine("\nQueue...UPDATED");
      foreach(string i in queue){
         Console.WriteLine(i);
      }
      Console.Write("Count of elements (Updated) = ");
      Console.WriteLine(queue.Count);
      queue.Dequeue();
      queue.Dequeue();
      Console.WriteLine("\nQueue...UPDATED");
      foreach(string i in queue){
         Console.WriteLine(i);
      }
      Console.Write("Count of elements = ");
      Console.WriteLine(queue.Count);
      queue.Clear();
      Console.Write("\nCount of elements (updated AGAIN) = ");
      Console.WriteLine(queue.Count);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Queue...
Gary
Jack
Ryan
Kevin
Mark
Count of elements = 5
Queue...UPDATED
Gary
Jack
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements (Updated) = 8
Queue...UPDATED
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements = 6
Count of elements (updated AGAIN) = 0

정리하면, Enqueue()는 언제든지 큐의 끝에 새로운 요소를 추가할 수 있으며, Dequeue()는 큐의 맨 앞에서 요소를 제거하고 반환합니다. 이 두 메서드를 조합하면 작업 대기열 처리, 버퍼 관리, 스케줄링 등 다양한 시나리오에서 효율적으로 활용할 수 있습니다.