👉힙이란?
- 완전 이진 트리
1) 마지막 레벨을 제외 하고 모든 레벨이 완전히 채워져 있다.
2) 마지막 레벨은 꽉 차 있지 않아도 되지만, 노드가 왼쪽에서 오른쪽으로 채워져야 한다.
3) 완전 이진 트리는 배열을 사용해 효율적으로 표현 가능하다.

👉힙(Heap)의 종류
- 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리
- 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리

👉힙(Heap)의 데이터 삽입

1. 15를 왼쪽 최하단 노드에 삽입
2. 10을 윈쪽 최하단 노드에 삽입후 부모와 비교
3. 부모보다 작으므로 그 자리에 위치시킨다.
4. 8을 삽입해야하는데 이미 왼쪽 노드에 데이터가 있으므로 오른쪽 최하단 노드에 삽입, 부모와 비교, 작으므로 그 자리에 위치시킨다.
완전 이진트리의 구조에 맞게 최하단부 노트부터 채워지며 위치한 노드에서 부모노드와 값을 비교후 부모 노드보다 크다면 위치를 swap한다

1. 20을 왼쪽 최하단부 노드에 삽입한다.
2. 20의 부모 노드인 8과 비교한다. 20이 더 크므로 8과 위치를 바꾼다.

3. 20의 부모 노드인 15와 비교후 20이 더 크므로 15와 위치를 바꾼다.
👉힙(Heap)의 데이터 삭제

1. 부모 노드값 삭제

2. 비어있는 부모노드에 최하단부 노드를 루트로 옮긴다.
3. 자식 노드와 비교후 루트보다(8) 크다면 바꾼다.
-왼쪽,오른쪽 자식 노드 둘 다 크다면 둘중에 큰 값을 부모 노드와 바꾼다.
우선순위 큐를 힙(Heap)을 이용해 구현하는것은 다음에 알아보도록 하겠다.