Heap 이란 ? Heap은 완전 이진 트리(Complete Binary Tree)*의 형태를 가진 자료구조 이며 여러 데이터들 중 최소값 데이터 혹은 최대값 데이터를 빠르게 찾기 위해 고안한 자료구조다. (완전 이진 트리 : 트리의 모든 레벨이 꽉 채워져 있으며 왼쪽부터 오른쪽으로 채우는 트리) Heap의 특징 힙은 완전 이진 트리의 형태를 가진다. 부모노드의 값이 자식노드의 값보다 큰 경우 최대 힙으로 표현한다. 자식노드의 값이 부모노드의 값보가 큰 경우 최소 힙으로 표현한다. 힙을 구현할때는 배열을 이용하여 구현한다. 힙에 데이터를 삽입하거나 삭제한 후에는 꼭 HeapifyUp이나 HeapifyDown을 사용하여 힙의 속성이 깨지지 않도록 한다. 힙은 모든 언어에서 기본 라이브러리로 지..