Queue
특징
- 한쪽 끝에서 자료를 넣고 반대 쪽 끝에서 자료를 뺀다.
- 이와 같은 속성에 따라, 가장 먼저 들어간 자료를 가장 먼저 빼게 된다.
- 이 속성을 선입선출(FIFO , First In First Out) 이라고 부른다.
- 기본적인 자료구조이기 때문에 거의 모든 언어의 표준 라이브러리에서 구현체 제공
ex) 놀이공원이나 음식점에서의 줄 등
개념
데이터를 삽입하는 곳을 Rear(후방), 데이터를 추출하는 곳을 Front(전방)이라고 합니다.
<이 부분은 아직 제대로 안해봄. 직접 코딩해볼 예정.>
특징 때문에 리스트로 작성하여 만들시 아래와 같은 문제가 생긴다.
리스트의 경우 인덱스 값이 정해져 있다.
index 1 2 3 4 5 6 7
value 5 7 6 4 2 9 7
여기서 5가 사라지면 인덱스 값도 앞으로 당겨줘야한다.
DEQ (Double Ended Queue)
DEQ는 양쪽 끝에서 데이터를 삽입 및 삭제할 수 있는 큐입니다.
DEQ의 장점
- 큐와 스택의 기능을 모두 제공합니다.
- 다양한 응용 분야에서 사용됩니다.
DEQ의 단점
- 구현이 다소 복잡합니다.
- 일반적인 큐보다 느릴 수 있습니다.
원형큐(Circular Queue)
원형큐는 큐의 끝에 도달하면 다시 처음부터 데이터를 삽입하는 방식으로 구현된 큐입니다.
원형큐의 장점
- 공간 활용도가 높습니다.
- 삽입 및 삭제 연산이 빠릅니다.
원형큐의 단점
- 구현이 다소 복잡합니다.
- 데이터가 가득 찼는지 확인하는 것이 어렵습니다.