# Tree
- Tree의 정의
▪ 데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료 구조
- Tree의 구조, 특징
▪ 맨 처음 데이터의 꼭짓점을 루트(Root)라고 한다.
▪ 루트에 여러 개의 데이터를 간선(edge)로 연결하며, 연결된 각 데이터를 노드(Node)라고 한다.
▪ 상하 계층으로 연결된 데이터들은 부모/자식 관계를 가진다.
▪ 상위 계층의 데이터를 부모 노드(Parent Node), 하위 계층에 있는 데이터들을 자식 노드(Child Node)라고 한다.
▪ 자식이 없는 노드를 리프 노드(Leaf Node)라고 한다.
- 깊이 (Depth)
트리 구조에서 루트(꼭짓점 노드)로부터 하위 계층의 특정 노드까지의 깊이. - 레벨 (Level)
같은 깊이를 가지고 있는 노드를 묶어서 레벨로 표현함. (ex. Depth가 0인 루트 노드의 level은 1, Depth가 1인 노드의 level은 2이다.)
같은 레벨에 나란히 있는 노드를 형제 노드(Sibling Node)라고 한다. - 높이 (Height)
리프 노드를 기준으로 루트까지의 높이를 말함. 리프 노드를 기준으로 높이가 설정된다. 리프 노드의 높이는 0으로 노드 하나층을 올라갈수록 1만큼 늘어난다. - 서브 트리 (Sub tree)
트루 구조의 root에서 뻗어 나오는 큰 트리의 내부에, 트리 구조를 갖춘 작은 트리.
- Tree의 장점
▪ 효과적인 계층 구조 표현
: 계층 구조를 나타내는 데에 효과적
▪ 정렬과 탐색에 활용
: 이진 탐색 트리, 힙(Heap) 등과 같은 형태로 사용되어, 정렬과 탐색을 위한 알고리즘을 구현하는 데 사용됨.
▪ 삽입과 삭제가 용이
: 노드의 삽입과 삭제가 쉬움. 삽입 및 삭제 시에 대항 노드의 부모와 자식 노드를 수정한다.
▪ 구조 파악이 용이
: 쉽게 시각화 하여, 구조 이해하기에 도움됨
▪ 다양한 분야에서 활용
: 데이터베이스, 알고리즘 등 다양한 분야에서 활용된다. (ex. 컴퓨터의 디렉토리 구조, 회사 조직도 등)
'개발지 > Today I learn' 카테고리의 다른 글
[1128] 자바 - Graph (그래프) (2) | 2023.11.28 |
---|---|
[1127] 자바 - Graph Traversal(그래프 탐색) (4) | 2023.11.27 |
[1122] 자바 - 자료구조 (Queue) (0) | 2023.11.22 |
[1026] 자바 - 자료구조 (Stack) (1) | 2023.10.26 |
[1010] CS 지식 - 웹 (HTTP Messages) (1) | 2023.10.10 |