큐(queue)는 스택(stack)과 반대로 선입선출의 개념을 갖고 있다. 즉 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out)의 자료구조로 대기열이라고도 한다.
예를 들면 고속도로의 톨게이트가 있다. 톨게이트에 먼저 진입한 자동차는 먼저 표를 뽑고 지나가게 되고 뒤에는 온 순서대로 자동차들이 대기하고 있을 것이다. 그리고 순차적으로 표를 뽑고 지나간다.
여기서 Queue에 데이터를 넣는 것을 'enqueue', 데이터를 꺼내는 것을 'dequeue'라고 한다.
Queue는 보통 데이터가 입력된 순서대로 처리할 때 사용한다.
Queue는 원형 큐(Circle Queue), 우선순위 큐(Priority Queue)와 같이 다른 형식도 있다.
특징
- 데이터는 하나씩 넣고 뺄 수 있다. 즉, 한번에 여러 개를 넣거나 뺄 수 없다.
- 두 개의 입출력 방향을 갖고 있다. 즉, 입출력 방향이 같다면 Queue 자료구조라고 볼 수 없다.
키워드
- poll
: 가장 먼저 추가된 데이터를 큐에서 삭제하고 삭제한 데이터 리턴 - add
: 큐에 데이터 추가 - offer
: 큐에 데이터 추가 - remove
: 큐의 첫 번째 데이터 삭제 - peek
: 큐에 가장 먼저 추가된 데이터 리턴 - show
: 큐에 들어있는 모든 데이터를 String 타입으로 변환하여 리턴 - clear
: 큐에 들어있는 모든 데이터 삭제 - enQueue
: 큐에 데이터 넣기 - deQueue
: 큐에서 데이터 꺼내기 - empty
: 큐가 비어있는지 확인 - full
: 큐가 꽉 차있는지 확인
'개발 일지 > CS' 카테고리의 다른 글
[자료구조] 그래프(Graph) (0) | 2023.01.17 |
---|---|
[자료구조] 트리(Tree) (0) | 2023.01.17 |
[자료구조] 스택(Stack) (0) | 2023.01.16 |
[Data Type] JSON(JavaScript Object Notation) (0) | 2023.01.13 |
[알고리즘] 재귀(Recursive) (0) | 2023.01.12 |