우선순위 큐(Queue)와 힙(Heap)

우선순위 큐(Queue)


우선순위 큐(Queue)란, 우선순위 개념을 큐에 도입한 자료구조이다.

  • 우선순위 큐(Queue): 가장 우선순위가 높은 데이터부터 삭제된다.
  • 큐(Queue): 가장 먼저 들어온 데이터부터 삭제된다.
  • 스택(Stack): 가장 최근에 들어온 데이터부터 삭제된다.


힙(Heap)


힙(Heap)이란, 완전 이진 트리(Complete Binary Tree)의 일종으로, 우선순위 큐를 위해 만들어진 자료구조이다.

여러 개의 값들 중에서, 최대값이나 최소값을 빠르게 찾아내도록 만들어진 자료구조이다.

*완전 이진 트리란, 마지막 레벨을 제외한 나머지 모든 레벨에서 노드가 완전히 채워진 트리를 말한다. 또한, 마지막 레벨은 꽉 차 있지 않아도 되지만, 노드가 왼쪽에서 오른쪽으로 채워져야 한다.


힙(Heap)의 종류


  • 최대 힙(max heap)
    • 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리
  • 최소 힙(min heap)
    • 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리

Types of Heap
출처: ypes of Heap