우선순위 큐_대칭 최소최대 힙(Symmetric min max heap)
Symmetric min max heap 은 root가 비어있고 루트 lch에는 가장 작은 값이 루트 rch에는 가장 큰 값이 있어서
우선순위의 최소 최대를 편하게 접근할 수 있는 완전 이진 트리(CBT)이다.
조건은 크게 3가지이다.
1. 각 노드의 원소는 오른쪽 형제보다 작거나 같다.
2. 조부모를 가진 노드 N -> 조부모의 rch > N
3. 조부모를 가진 노드 N -> 조부모의 lch < N
이러한 조건을 만족시키는 대칭 최소최대 힙을 삽입하는 과정은 다음과 같다.
* 먼저 해당 위치에 E라는 임의 노드를 삽입.
그리고 조건 1을 체크를 한다(왼쪽 형제로 가서 값 비교, 오른쪽 형제로 가서 값 비교)
* 그리고 부모의 손자노드들로 가서 조건 2와 3을 하나씩 전부 체크.
구현 코드
'Archived(CSE Programming) > 자료구조(C++)' 카테고리의 다른 글
우선순위 큐(Priority Queue) / 힙(Heap) (0) | 2020.11.24 |
---|---|
스택(Stack)과 큐(Queue), 순환 큐(Circular Queue) (0) | 2020.11.23 |
우선순위 큐_피보나치 힙(Fibonacci Heap) (0) | 2018.12.09 |
자료구조 프로그래밍 Lab09) Patricia 만들기 (0) | 2018.11.30 |
자료구조 프로그래밍 Lab08) BTree (2-3 Tree) 만들기 (3) | 2018.11.26 |