큐와 유사하지만 우선순위가 높은 아이템이 먼저 처리되는 큐
힙은 주로 이진 트리(Binary tree) 기반으로 구현됨
부모 노드의 키가 자식 노드(들)의 키보다 크거나 같은 트리

부모 노드의 키가 자식 노드(들)의 키보다 작거나 같은 트리
아래 Max Heap 기준으로 17을 insert


2-1. 삽입된 17의 부모노드가 3이므로 위치 변경

2-2. 변경된 위치의 17의 부모 노드가 15이므로 위치 변경

아래 Max Heap 기준으로 delete



3-1. 선택된 노드(2)가 자녀 노드들보다 작고 자녀노드인 15, 11 중 15가 더 크기때문에 15와 선택 노드 위치 변경

3-2. 선택된 노드(2)가 자녀 노드들보다 작고 자녀노드인 12, 3 중 12가 더 크기때문에 12와 선택 노드 위치 변경

3-3. 선택된 노드(2)가 자녀 노드들보다 작고 자녀노드인 7, 5 중 7이 더 크기때문에 7과 선택 노드 위치 변경

힙의 키를 우선순위로 사용한다면 힙은 우선순위 큐의 구현체가 된다.
Heap = 자료 구조(Data Structure)
Priority queue = ADT(Abstract Data Type: 추상 자료형)
Heap은 Priority queue의 구현체 중 하나이다.(일반적으로 우선순위 큐를 힙으로 구현한다.)
프로세스 스케줄링
멀티 프로세스 환경에서 P1, P2, P3, P4가 있다면 프로세스마다의 우선 순위를 부여해 가장 우선 순위가 높은 프로세스를 우선으로 수행하는 방법이 존재
Heap Sort(힙 정렬)
N개의 데이터가 존재한다면 전부 힙에 넣고 차례 차례 빼게된다면 해당 데이터는 정렬되어서 나온다.
힙(Heap)메모리도 혹시?
힙 메모리의 힙은 자료 구조 힙과 관련이 없다.