Computer Science/Data Structure
트리(Tree)
GKS
2022. 9. 21. 22:21
반응형
SMALL
트리(Tree)
트리(Tree)란?
- 그래프의 일종으로 정점과 간선을 이용하여 데이터의 배치 형태를 추상화한 자료구조이다.
- 서로 다른 두 노드를 연결하는 길이 하나뿐인 그래프를
트리라고
부른다. - 힙(Heap)을 구현하는 방법 중 하나가 트리다.
트리의 특징
- 그래프의 한 종류로, 최소 연결 트리라고도 불린다.
- 일반적으로 대상 정보의 각 항목들을 계층적으로 구조화할 때 사용하는 비선형적인 자료구조이다.
- 트리의 구조는 데이터 저장의 의미 보다는 저장된 데이터를 효과적으로 탐색하기 위해서 사용한다.
- 리스트와 다르게 데이터가 단순히 나열되는 구조가 아니다. -> 트리는 부모(Parent)와 자식(Child)의 계층적인 관계료 표현된다.
- 사이클이 없다.
- 한 개의 루트 노드 만이 존재하며 모든 자식 노드는 한 개의 부모 노드만을 가진다.
트리와 관련된 용어
용어 | 설명 | 사진 예시 |
---|---|---|
루트 노드(root node) | 부모가 없는 노드, 트리는 하나의 루트 노드만을 가진다. | A |
단말 노드(leaf node) | 자식이 없는 노드, '말단 노드' 또는 '잎 노드' 라고도 부른다. | H, I, J, F, G |
내부 노드(internal node) | 단말 노드가 아닌 노드 | A, B, C, D, E |
간선(edge) | 노드를 연결하는 선, link, branch 라고도 부른다. | |
형제(sibling) | 같은 부모를 가지는 노드 | C : F, G |
노드의 크기(size) | 자신을 포함한 모든 자손 노드의 개수 | C : 3 |
노드의 깊이(depth) | 루트에서 어떤 노드에 도달하기 위해 거쳐야 하는 간선의 수 | H : 3 |
노드의 레벨(level) | 트리의 특정 깊이를 가지는 노드의 집합 | B, C : 1 |
노드의 차수(degree) | 하위 트리 개수, 간선 수(degree) = 각 노드가 지닌 가지의 수 | A : 2 |
트리의 차수(degree of tree) | 트리의 최대 차수 | B, C : 2 |
트리의 높이(height) | 루트 노드에서 가장 깊숙히 있는 노드의 깊이 | 3 |
SMALL
트리의 기본적인 성질
- 노드가
N개
인 트리는 항상N-1개
의 링크(link)를 가진다. - 루트에서 어떤 노드로 가는 경로, 임의의 두 노드 간의 경로는 유일하다. (단, 같은 노드를 두 번 이상 방문하지 않는다는 조건)
트리의 순회
- 트리의 순회란 트리의 각 노드를 체계적인 방법으로 탐색하는 과정을 의미한다.
노드를 탐색하는 순서에 따라전위순회
,중위 순회,
후위 순회
3가지로 분류된다.
1. 전위(Preorder) 순회
루트 노드 - 왼쪽 서브 트리 - 오른쪽 서브 트리의
순서로 순회하는 방식
깊이 우선 순회라고도 불린다.
2. 중위(Inorder) 순회
왼쪽 서브 트리 - 노드 - 오른쪽 서브 트리의
순서로 순회하는 방식
대칭 순회라고도 불린다.
3. 후위(Postorder) 순회
왼쪽 서브 트리 - 오른쪽 서브트리 - 노드의
순서로 순회하는 방식
반응형
LIST