<aside> <img src="/icons/dialogue_gray.svg" alt="/icons/dialogue_gray.svg" width="40px" /> 큐[Queue]란 무엇인가


먼저 추가된 데이터가 먼저 출력 처리되는 FIFO [First In First Out] 자료 구조로서 입력된 순서대로 처리해야 하는 상황에 이용된다.

큐[Queue] 의 맨 뒤에서 데이터를 계속 맨 앞에서만 데이터를 읽기 때문에 순차적으로 데이터를 처리하게 된다.

</aside>

<aside> <img src="/icons/flag_gray.svg" alt="/icons/flag_gray.svg" width="40px" /> Queue 생성


컬랙션인 Queue를 사용하기 위해 “System.Collections”를 using 문에 추가한다.

using System.Collections;

Queue 객체는 일반 객체를 생성하는 방법과 동일하며, var 타입도 가능하다.

Queue queue1 = new Queue();

var queue2 = new Queue();

Queue의 용량을 객체를 생성할 때 설정할 수 있다.

만약, Queue에 데이터가 3개가 존재하는데 데이터를 넣는 경우 Queue의 용량이자동으로 증가한다.

Queue queue = new Queue(3);

</aside>

<aside> <img src="/icons/refresh-reverse_gray.svg" alt="/icons/refresh-reverse_gray.svg" width="40px" /> Queue 초기화


Queue 생성자에 배열을 넘기면, 배열의 값으로 Queue의 값을 초기화한다.

int[] arr = {1, 2, 3, 4};

Queue queue = new Queue(arr);

Queue 생성자에 object 타입의 배열을 전달하면 Queue의 값을 초기화한다.

Queue queue = new Queue(new object[] {1, "hi", 5.5});

</aside>

<aside> <img src="/icons/plus_gray.svg" alt="/icons/plus_gray.svg" width="40px" /> Queue에 값 추가


Enqueue() 메서드를 사용하여 Queue에 값을 추가할 수 있다.

Queue queue = new Queue();

queue.Enqueue(1);
queue.Enqueue("2번쨰");

img1.daumcdn.png


img1.daumcdn.png


img1.daumcdn.png

</aside>

<aside> <img src="/icons/remove_gray.svg" alt="/icons/remove_gray.svg" width="40px" /> Queue에 값 제거


Dequeue() 메서드를 사용해서 Queue 시작 부분의 값을 제거할 수 있다.

queue.Dequeue();
queue.Dequeue();

//에러
queue.Dequeue();

또한 Clear() 메서드를 사용하여 Queue의 모든 값을 제거할 수 있다.

queue.Clear();

</aside>

<aside> <img src="/icons/glasses_gray.svg" alt="/icons/glasses_gray.svg" width="40px" /> Queue에서 값 읽어오기


Peek() 메서드를 사용해서 Queue의 시작 부분의 값을 읽어올 수 있다.

</aside>

last update : 2023-10-06