[C언어] Tree / Heap 힙 구현 - 2편자료구조와 알고리즘/자료구조2021. 9. 11. 12:45
Table of Contents
Heap
우선순위 큐를 구현하기 위한 자료구조, 완전 이진 트리의 형태로 구성
최대값 및 최솟값을 찾아내는 연산을 빠르기 하기 위한 용도로 사용
큐는 여기 글에서 설명이 되어있고, 우선순위 큐는 먼저 들어온 데이터가 아닌 우선순위가 높은 데이터가 먼저 나가는 형태
특징
- 완전이진트리의 형태
- 부모노드와 자식노드 간에만 대소 관계가 성립(형제 사이에는 정해지지 않는다)
- 중복된 값 허용
복잡도
Max Heap (최대 힙)
- 부모노드의 키값이 자식노드의 키값보다 항상 큰 힙
- 루트노드의 값은 최대값
Min Heap (최소 힙)
- 부모노드의 키값이 자식노드의 키값보다 항상 작은 힙
- 루트노드의 값은 최솟값
연산
- createHeap() : 히프 생성
- deleteHeap() : 히프 삭제
- insert() : 자료 추가
- 트리의 마지막 자리에 임시 저장
- 부모 노드와 키 값 비교 및 이동
히프 시각적으로 표현
- remove() : 자료 제거
- 루트노드의 삭제
- 트리 마지막 자리 노드의 임시 이동
- 자식 노드와 키 값 비교 및 이동 (우선 순위가 높은 자식 노드와 위치 교환)
- find() : 루트값 반환
코드 구현
더보기
기입할 예정
'자료구조와 알고리즘 > 자료구조' 카테고리의 다른 글
BST 이진 탐색트리 구현 / 수정 (4) | 2021.09.14 |
---|---|
[C언어] Tree / BST 이진 탐색트리 구현 - 3편 (3) | 2021.09.12 |
[C언어] Tree (트리) - 1편 (1) | 2021.09.09 |
[C언어] Queue (큐) (2) | 2021.09.04 |
[C언어] Stack (스택) (2) | 2021.09.02 |
@jaewpark :: 코스모스, 봄보다는 늦을지언정 가을에 피어나다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!