<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번쨰");
</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