본문 바로가기

알고리즘

큐( queue )의 구현과 메소드 사용 [C#]

반응형

큐 ( queue )

요소가 한쪽 끝(후면)에서 추가되고 다른 쪽 끝(전면)에서 제거되는 요소 컬렉션을 나타내는 추상 데이터 유형
대기열은 FIFO(First In First Out,선입선출) 원칙을 따른다. 즉, 먼저 추가된 요소가 먼저 제거된다.

c#에는 고맙게도 Queue<T> 클래스가 구현 되어있다. 이때 T는 큐에 저장된 요소의 유형이다.


큐 구현 및 메소드 사용

1. 큐 구현

Queue<int> queue = new Queue<int>();

2.큐 삽입

queue.Enqueue(10);
queue.Enqueue(20);
queue.Enqueue(30);

3. 큐 제거

int firstItem = queue.Dequeue();

이때 queue.Dequeue();는 제거 된 요소 값을 반환하므로 fisrtItem 변수에 초기화 가능

4. 큐 크기

if (queue.Count > 0)
{
    // Do something with the queue
}

5. 큐 요소 출력

Queue<int> myQueue = new Queue<int>();
myQueue.Enqueue(1);
myQueue.Enqueue(2);
myQueue.Enqueue(3);

foreach (int item in myQueue)
{
    Console.WriteLine(item);
}

foreach를 사용하여 요소를 출력한다.

5-1.큐 첫번째 요소만 출력

Queue<int> myQueue = new Queue<int>();
myQueue.Enqueue(10);
myQueue.Enqueue(20);
myQueue.Enqueue(30);

Console.WriteLine(myQueue.Peek());  // Output: 10

이때 Peek()는 큐에서 어떠한 값을 바꾸는 것이아닌 참조에 의한 복사이다.

5-2.큐 마지막 요소만 출력

Queue<int> myQueue = new Queue<int>();

myQueue.Enqueue(10);
myQueue.Enqueue(20);
myQueue.Enqueue(30);

Console.WriteLine(myQueue.Last()); // Output: 30

Last() 역시 참조에 의한 복사이다.

6. 큐 요소 확인

Queue<int> queue = new Queue<int>();
queue.Enqueue(10);
queue.Enqueue(20);
queue.Enqueue(30);

bool contains20 = queue.Contains(20); // returns true
bool contains40 = queue.Contains(40); // returns false


C#에서 제공하는 큐 클래스를 사용해 백준 알고리즘을 아래 풀어보았다.

 

[c#]백준 알고리즘 10845 - 큐

이제 구현 파트에서 자료구조 파트를 넘어가는 시기가 되었다. 이제 코드를 구조적으로 구현 할 수있다는 생각을 하니 조금은 뿌듯하다. C#에서 큐 클래스가 이미 구현되어있기 때문에 큐 클래

rnflajdrnfl.tistory.com

 

반응형