비선형 구조 - 트리, 그래프
· 약 6분
❤️🔥TIL : Today I Learned
트리, 그래프
비선형 구조인 트리와 그래프에 대해서 비교하고 설명합니다.
트리 란?
Tree 특징

- 나무를 거꾸로 뒤집어 놓은 듯한 구조이다.
- 그래프의 여러 구조 중 무방향 그래프의 한 구조로 하나의 뿌리로부터 가지가 사방으로 뻗은 형태.
- 하나의 데이터 뒤에 여러 개의 데이터가 존재할 수 있는 비선형 구조
- 아래로만 뻗어나가는 구조로 사이클이 없음.
- 루트(Root) 라는 하나의 최상단 꼭짓점 데이터를 시작으로 여러 개의 데이터를 간선(edge)으로 연결한다.
- 각 데이터를 노드(Node)라고 하며, 두 개의 노드가 상하계층으로 연결되면 부모/자식 관계를 가짐
- 깊이와 높이, 레벨 등을 측정할 수 있음.
트리 관련 용어
- 루트(Root): 부모가 없는 최상위 노드
- 노드(Node) : 트리 구조를 이루는 모든 개별 데이터
- 부모 노드(Parent node) : 두 노드가 상하 관계로 연결되어 있을 때 상대적으로 루트와 가까운 노드
- 자식 노드(Child node) : 두 노드가 상 하 관계로 연결되어 있을 때 상대적으로 루트에서 먼 노드
- 리프 노드(leaf node) : 트리 구조의 끝지점이고, 자식 노드가 없는 노드
Tree 특징
- 깊이 : 루트로부터 하위 계층의 특정 노드까지의 깊이(depth) 표현 가능, 깊이 0에서 시작
- 레벨 : 같은 깊이를 가지고 있는 노드의 묶음, 같은 레벨에 나란히 있는 노드를 형제 노드(sibling node)라고 함
- 높이 : 리프 노드를 기준으로 루트까지의 높이, 트리 구조의 높이를 표현할 때에는 각 리프 노드의 높이를 0으로 함
- 서브 트리 : 트리 구조의 root에서 뻗어나오는 큰 트리의 내부에 트리 구조를 갖춘 작은 트리
이진트리(Binary Tree)

- 트리를 구성하는 노드의 개수가 최대 2개의 서브 트리를 가진 트리
- 서브 트리 또한 모두 이진 트리이다. 즉 branch가 최대 2개인 노드로만 구성되는 트리 라는 뜻(max 2)
