Notice
Recent Posts
Recent Comments
Link
코딩 성장기
[자료구조] 트리 개념 본문
트리란?
데이터의 상하관계(계층관계)를 저장하는 자료구조.
데이터에 하나 이상의 데이터들이 단방향으로 연결되어 있다.
이러한 구조가 마치 나무의 모습과 같아서, 트리구조라고 부른다.
비선형 구조이다.
(선형 구조는 배열/리스트와 같이 순서를 갖는 데이터를 갖는다.)
트리 구조
노드를 데이터를 가지고 있는 점으로 보고, 노드 사이를 선으로 연결시킨다.
선으로 연결되어 있는 각 노드를 부모노드/자식노드 라고 부른다.
(위에 있는 노드가 부모노드)
이 중, 가장 최상단에 위치하는 노드를 root 노드라고 부른다.
트리 용어
- 노드 : 그래프에서 각 데이터
- root 노드(뿌리 노드) : 트리 최 상단의 노드. 트리의 시작점. 위의 그림에서 F에 해당한다.
- 부모 노드 : 상하 관계에 있는 데이터들 중에서, 윗쪽에 있는 데이터
- 자식 노드 : 상하 관계에 있는 데이터들 중에서, 아랫쪽에 있는 데이터
- 예)B는 A와 D의 부모노드. A와 D는 B의 자식 노드.
- 형제 노드 : 수평 관계에 있는 데이터. 부모가 같은 노드.
- 예)A와 D는 서로 형제 노드
- leaf 노드(잎사귀 노드/말단 노드) : 트리 그래프에서 가장 말단에 있는 노드.(자식을 갖지 않는 노드)
- 위의 그림에서 A, C, E, H가 잎사귀 노드이다.
- 깊이(depth) : root 노드로 부터 떨어져 있는 거리. 노드간 연결되어있는 간선의 수. 단, root 노드는 깊이가 0
- 예)A의 깊이는 1, E의 깊이는 3
- 레벨(level) : 같은 깊이에 있는 노드들을 묶어서 말할때 쓰는 용어. 깊이값 + 1 로 표현한다.
- 예) F의 레벨은 1, A, D, I는 레벨이 3
- 높이(height) : root 노드로부터 트리의 가장 말단에 있는 노드까지의 깊이.
- 위의 그래프에서는 높이가 3이 된다.
- 부분 트리(sub tree) : 트리를 이루고 있는 트리 내부의 작은 단위의 트리.
'컴퓨터 공학 > 자료구조' 카테고리의 다른 글
[자료구조] 이진 트리 (0) | 2022.03.07 |
---|---|
[자료구조] 그래프와 인접 행렬, 인접 리스트 (0) | 2022.03.07 |
[자료구조] 그래프 개념 (0) | 2022.03.06 |
[자료구조] 자료구조의 개념 및 큐(Queue)와 스택(Stack) (0) | 2022.03.05 |