• 힙(Heap)


힙은 데이터에서 최대값(혹은 최소값을) 빠르게 찾을 수 있는 자료구조

힙은 완전 이진 트리다.

우선순위가 가장 높은 데이터가 제일 앞(루트)에 위치한다.

부모는 자식보다 우선순위가 더 높은 데이터가 배치된다.
(ex. 큰 데이터가 더 우선된다면, 모든 부모 노드는 자신의 자식 노드보다 더 크다)

대표적으로 최대 힙과 최소 힙이 있다.

최대 힙(Max Heap) : 
데이터 중 가장 큰 값이 루트에 위치
모든 부모 노드는 자식보다 크거나 같다.

최소 힙(Min Heap) :
데이터 중 가장 작은 값이 루트에 위치
모든 부모 노드는 자식보다 작거나 같다.






  • 배열을 활용한 힙 구현








  • 우선순위 큐(Priority Queue)



데이터들이 우선순위를 갖는다.

입력순서에는 상관없이 우선순위가 높은 데이터가 가장 먼저 처리된다.

아래의 모든 설명은 최대 힙을 활용한 우선순위 큐이다.





  • 삽입














  • 삭제








  • 전체 코드



+ Recent posts