fffo
우선순위 큐와 힙 본문
우선순위 큐와 힙
힙
- 힙 순서 속성(Heap Order Property)를 만족하는 완전 이진 트리
- 힙을 이용해 우선순위 큐를 구현할 수 있음
힙 삽입
- 힙의 최고 깊이, 최 우측에 새 노드 추가, 완전 이진 트리를 만족 시켜야 함
- 삽입한 노드를 부모 노드와 비교 후 부모 노드보다 우선순위가 높으면 부모 노드와 교환 (반복)
힙 제거
- 루트 노드가 우선순위가 가장 높기 때문에 루트 노드를 제거
- 최하위 최우측 노드를 루트에 넣고 자식과 우선순위 비교하면서 내려가기(반복)
힙 구현
- 보통 트리를 구현하는 링크드 리스트는 트리 최하위 최우측을 바로 알아내기가 어려움
- 배열을 이용, 자식 노드로의 링크는 인덱스값 * 2로 구현
'Programming > Algorithm' 카테고리의 다른 글
문자열 - 다음 큰 숫자 (0) | 2021.09.23 |
---|---|
스택/큐 - 다리를 지나는 트럭 (0) | 2021.09.23 |
탐색 (0) | 2021.09.22 |
정규 표현식 - 파일명 정렬 (0) | 2021.09.22 |
정렬 - h-index (0) | 2021.09.22 |
Comments