Profile

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

우선순위 큐

Queue 란 FIFO 또는 LILO 구조이고 우선순위 큐는 큐처럼 동작하지만 우선순위라는 속성을 갖는 데이터를 다룬다.
우선 순위 큐의 정의는 Enqueue(삽입)과 Dequeue(제거) 연산을 지원하는 자료구조이다.
즉 우선순위 큐는 새 요소에 우선순위를 부여해서 큐에 삽입하고 가장 높은 우선순위를 갖는 요소부터 빠져나오도록 한다.

메모리에서 힙 영역과 자료구조의 힙은 아무런 연관이 없다. (별로 특별한 이유 없이 힙 영역으로 부르기 시작한 것)
힙이란 Heap Order Property 를 만족하는 완전 이진 트리
완전 이진트리란 최고 깊이를 제외한 모든 깊이의 노드들이 완전히 채워져 있는 이진트리
힙 순서 속성이란 트리 내의 모든 노드가 부모 노드의 값보다 커야 한다는 규칙이다. (이진 탐색 트리처럼 값이 정렬되어 있는 것이 아닌, 단지 부모 노드 보다 값이 크기만 하면 된다.)
따라서 힙에서 가장 작은 데이터를 갖는 노드는 루트 노드이다.