본문 바로가기
Data Structure

Tree Structure 노트5 - K-ary Tree, Selection Tree

by SuldenLion 2022. 4. 8.
반응형

K-ary 트리와 Selection 트리

 

k-ary tree : degree의 최대 수가 k인 tree를 의미함. 모든 노드가 n개를 초과하는 자식 노드를 가지지 않는 트리. n이 2이면 binary tree가 되고, 3이면 ternary tree가 됨.

특징 : 높이가 h인 k-ary tree는 최대 n의 h제곱-1의 노드를 가질 수 있음. 높이가 3인 binary tree의 노드는 최대 7개.

종류 :

ㆍcomplete n-ary tree : 완전 트리. 마지막 level을 제외한 모든 level이 완전히 채워져 있고, 마지막 level의 모든 노드는 가능한 한 가장 왼쪽에 있는 tree.

ㆍperfect n-ary tree : 포화 트리. leaf node를 제외한 모든 노드의 차수가 0이며, 모든 leaf node가 동일한 level을 갖는다. 어떤 트리가 perfect tree라면, complete tree이며 full tree이다.

ㆍbalanced n-ary tree : 균형 트리. 모든 leaf node의 level 차이가 최대 1인 트리. 균형 트리는 트리의 주 목적인 탐색을 위한 AVL트리, red-black트리 같은 자료구조들의 기반이 됨.

ㆍskewed n-ary tree : 사향 트리. root node를 제외한 노드들이 모두 parent node의 왼쪽에 있거나, 모두 parent node의 오른쪽에 있는 트리.

 

 

Selection tree를 이용하면, 다음으로 가장 작은 record를 찾는데 필요한 비교 횟수를 줄일 수 있음.

Selection tree는 승자 트리(winner tree)와 패자 트리(loser tree)가 있음.

- winner tree : 각 노드가 2개의 자식 노드 중 더 작은 노드를 나타내는 완전 이진 트리(Complete binary tree). -> 루트노드는 트리에서 가장 작은 노트를 나타냄. 작은값을 토너먼트처럼 올림.

- loser tree : winner트리와 특성은 같지만 루트노드 위에 최상위 0번 노드를 가지는 차이가 있음. 패자를 부모노드에 저장하고 승자는 부모의 부모노드로 올라가서 다시 경기를 함. 루트노드에는 마지막 패자를 정하고, 최종 승자는 0번 노드에 넣음.

반응형

댓글