개발 일지/CS

[자료구조] 큐(Queue)

미숫가루설탕많이 2023. 1. 16. 13:40

 큐(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