Learning
When: 1학년 7월 25일
How:
C#의 참조 형식과 값 형식에 대해 공부하던 중 값 형식은 스택을 이용하고, 참조 형식은 힙을 이용한다는 것은 알았는데, Stack 자료 구조에 대해선 알았지만 힙 자료 구조에 대해선 정확히 알고 있지 않았기 때문에 인터넷에 heap 메모리를 검색했어야 했는데, 실수로 heap 자료 구조라고 검색을 해서 tree에 대한 내용이 나와 그것에 대해 공부하게 되었습니다.
Understanding:
- 정의 : 일단 자료 구조는 데이터를 담는 방식이라고 볼 수 있는데, 잘 알고 있는 Stack은 LIFO(Last In First Out) 방식으로 데이터를 계속해서 쌓아 먼저 쌓은 데이터가 가장 마지막으로 나가는 방식입니다. 지금 쓸 tree 자료 구조는 한 단어로 표현하자면 목차 같은 자료 구조이고, 좀 더 자세히 설명하자면 파일을 정리하는 것처럼 2025 - 학교 - 과제 - 수학 이렇게 한 요소 안에 다른 요소를 넣을 수도 있는 부모와 자식 관계의 자료 구조입니다.
- 그림 : tree 구조는 잠깐은 어려워 보일 수 있어도, 그림을 보고 스스로 어디에 쓰였는지 생각해 보면 데이터를 어떤 방식으로 저장하는지 이해할 수 있기 때문에 gpt에게 시켜 그림을 그리게 했는데 차근차근 설명해 보겠습니다.
- 노드 : 하나의 요소로, 데이터를 저장하는 공간인데 아래의 그림의 동그라미가 노드입니다.
- Root는 시작점으로, 가장 위에 있는 노드입니다.
- Leaf는 가장 마지막에 있는 노드입니다. 아래의 그림의 Child1~3까지 전부 Leaf입니다.
- 간선 : 노드와 노드를 이어주는 선이 간선입니다.
- 깊이, 레벨 : 노드와 노드가 얼마나 떨어져있는지를 뜻합니다.
- 예시 : Unity를 해보셨다면 하이라키(Hierarchy) 창에서 부모 오브젝트 밑에 자식 오브젝트가 달릴 때 이 자료 구조를 사용한다고 보시면 되고, Unity를 모르신다면 지금 제가 쓰고 있는 글에서도 ([C#] 트리(tree) 자료 구조) 밑으로 (정의)와 (그림)이 있고, 그 그림에도 (노드), (간선), (깊이, 레벨), (예시)가 있고, 그 노드의 자식으로 Root와 Leaf의 설명이 있습니다. 이런 것을 떠올리시면 tree 자료 구조를 이해하는데 도움이 될 것이라 생각합니다.
- 노드 : 하나의 요소로, 데이터를 저장하는 공간인데 아래의 그림의 동그라미가 노드입니다.

- 사용법 : Stack 처럼 따로 클래스가 있지 않기 때문에 완전 직접적으로 사용할 일은 거의 없겠지만 프로그래머가 아니더라도 파일 구조, PPT 또는 문서를 정리할 때 목차를 쓰면서 자연스럽게 사용하게 됩니다.
Result: 트리 구조는 부모와 자식 관계를 필요로 하는 데이터를 관리할 때 사용하는 자료 구조이고, 그림에서는 하나의 노드 당 2개의 노드 밖에 자식으로 있지 않았지만 2진 트리가 아닌 경우에는 여러 개를 자식으로 가질 수 있습니다.
'C#' 카테고리의 다른 글
| [C#] var 키워드 (0) | 2025.07.27 |
|---|---|
| [C#] 흐름 제어 키워드 (0) | 2025.07.26 |
| [C#] string 메서드 (0) | 2025.07.24 |
| [C#] 값 형식과 참조 형식 (0) | 2025.07.23 |
| [C#] partial 키워드 (0) | 2025.07.22 |