1. 트리(Tree)
- 자료 구조의 트리는 나무의 형태를 가진 단방향 그래프의 일종이다
- 하나의 데이터 아래에 여러 개의 데이터가 존재하는 비선형 구조이다
- 트리 구조는 계층적으로 표현된다
- 트리 구조는 아래로만 뻗어 나가기 때문에 사이클이 존재하지 않는다
1) 트리 구성
- 데이터가 시작이 되는 꼭지점을 루트(Root) 라고 한다
- 데이터를 연결하는 선을 간선(Edge)라고 한다
- 각각의 개별 데이터를 노드(Node)라고 한다
- 상위-하위 관계 데이터 중에서 루트노드로부터 가까운 데이터를 부모 노드(Parent Node) 라고 한다
- 상위-하위 관계 데이터 중에서 루트노드로부터 먼 데이터를 자식 노드(Child Node)라고 한다
- 부모와 자식 노드가 한쌍으로 연결되어 관계를 형성한다
- 자식 노드가 없는 데이터를 리프 노드(Leaf Node)라고 하며, 트리구조의 끝 지점이다
2. 트리 관계
1) 깊이(Depth)
- 루트부터 하위 특정 노드까지의 깊이를 표현할 수 있다
- 루트값은 0부터 시작한다
2) 레벨(Level)
- 동일한 깊이를 가지고 있는 데이터들을 레벨로 묶을 수 있다
- 같은 레벨의 데이터를 형제 노드(Sibling Node)라고 한다
3) 높이(Height)
- 깊이와 반대로 리프노드부터 상위 특정 노드까지의 높이를 표현할 수 있다
- 리프노드 값은 0부터 시작한다
- 부모노드는 자식노드의 높이 값 + 1 의 값을 높이로 가진다
4) 서브 트리(Sub Tree)
- 루트에서 뻗은 트리 구조 내에 트리구조를 가지는 작은 트리를 서브트리(Sub tree)라 한다
※ 트리구조 적용 사례
- 컴퓨터 디렉토리 구조
'JAVA' 카테고리의 다른 글
Java - 콘솔 입출력(I/O) (0) | 2022.06.02 |
---|---|
Java - 연산자(Operator) (0) | 2022.06.02 |
메서드 모음(method) (0) | 2022.05.29 |
Java - 상수(Constant), 리터럴(Literal) (0) | 2022.05.29 |
Java - 문자열 변환 후 저장(StringBuilder / StringBuffer) (0) | 2022.05.29 |