호빵의 IT 개발소

[C#] 트리 이론 본문

자료구조와 알고리즘/자료구조와 알고리즘 맛보기

[C#] 트리 이론

호빵Stack 2022. 1. 15. 17:40

트리의 개념

 - 계층적 구조를 갖는 데이터를 표현하기 위한 자료구조

트리의 예시

 - 나무 같은 느낌, 뻗어 나가는 느낌의 계층 구조를 가지고 있습니다. 한쪽 방향으로 쭉 연결되야 하고 부모에 해당하는 부분은 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: 자료구조와 알고리즘

Comments