| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- c#
- list
- 기술면접
- 트리
- thread
- std::unordered_map
- Queue
- 해쉬맵
- 객체지향
- 멀티쓰레드
- 반복문
- std::map
- 배열
- 알고리즘
- map
- 힙영역
- 인프런
- static_cast
- 벡터
- 차이점
- 리스트
- 자료구조
- 스택
- MonoBehaviour
- 공부
- rookiss
- 프래그멘테이션
- vector
- 스택영역
- 큐
- Today
- Total
호빵의 IT 개발소
[C#] 트리 이론 본문
트리의 개념
- 계층적 구조를 갖는 데이터를 표현하기 위한 자료구조

트리의 예시

- 나무 같은 느낌, 뻗어 나가는 느낌의 계층 구조를 가지고 있습니다. 한쪽 방향으로 쭉 연결되야 하고 부모에 해당하는 부분은 0개 또는 1개만 있어야 합니다.
트리 관련 용어
- 부모(parent)노드 : 개발실(부모)
- 자식(child) 노드 : 개발실(부모) - 디자인팀(자식), 프로그래밍팀(자식), 아트팀(자식)
- 형제(sibling) 노드 : 디자인팀 - 프로그래밍팀 - 아트팀 (형제)
- 선조(ancestor) : 개발실(선조) - 전투(디자인팀의 자식)
- 자손(descendant) : 전투(자손) - 개발실(선조)
- 루트(root) : 부모가 없는 노드(개발실)
- 잎(leaf) : 자식이 없는 노드(전투, 경제, 스토리, 서버, 클라, 엔진, 배경, 캐릭터)
- 노드의 깊이(depth) : 최상위 노드(개발실)를 기준으로 depth를 몇번 내려갔는지
(개발실[0] -> 프로그래밍팀[1] -> 서버[2])
- 트리의 높이(height) : 최하위 노드(서버)를 기준으로 height가 얼마나 올라갔는지
(서버[0] -> 프로그래밍팀[1] -> 개발실[2]
- 트리의 재귀적 속성 및 서브트리(subtree) : 개발실에 자식 노드를 따로 별도의 트리로 생각할 수 있다. (프로그래밍팀이 최상위 노드가 된다면 프로그래밍팀은 root, parent 노드가 된다)
---------------------------------------------------------------------------------------------------------------------------
참고 : [인프런] Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
'자료구조와 알고리즘 > 자료구조와 알고리즘 맛보기' 카테고리의 다른 글
| [C#] 이진 트리 (0) | 2022.01.15 |
|---|---|
| [C#] 트리 구현 연습 (0) | 2022.01.15 |
| [C#] 다익스트라 최단 경로 알고리즘(추가 공부 필요) (0) | 2022.01.13 |
| [C#] BFS (너비 우선 탐색) (0) | 2022.01.13 |
| [C#] DFS(깊이 우선 탐색) (0) | 2022.01.13 |