트리(Tree)
이번 포스팅에서는 트리 (Tree) 에 대해 알아 보고자 합니다.
트리는 스택, 큐와 달리 비 선형 자료구조 로서, 자료들간 계층 관계를 가지는 계층형 자료구조 입니다.
트리가 사용되는 범위는 매우 다양합니다. (파일 디렉토리 구조 등)
이번 포스팅의 목적은 트리가 무엇인지, 트리에서 지칭되는 단어가 무엇인지 알아보겠습니다.
트리는 나무 모양 형태로 가지가 뻗어가는 자료구조 입니다.
먼저 트리를 구성하는 지칭 단어를 살펴 보겠습니다.
-----------------------------------------------------------------------------------------------------
Node
- 트리를 구성하는 원소 (ex. 길동, 홍이, 영민, 사호...)
Edge
- 트리를 연결하는 간선
Root Node
- 트리의 시작 노드 (ex. 길동)
Sibling Node
- 같은 부모 노드의 자식 노드들은 서로 형제 노드 (ex. 홍이, 영민, 사호)
Degree
- 한 노드가 가지는 서브 트리의 수
노드 길동의 차수 = 3
노드 영민의 차수 = 2
노드 홍이의 차수 = 0 (Leaf Node 라 지칭)
Leaf Node
- 차수가 0인 노드 (ex. 홍이, 진범, 보이, 해미)
Height
- 한 노드의 높이는 루트에서 그 노드에 이르는 경로에 있는 간선의 수 (ex. 길동의 전체 높이 2, 영민의 높이 1)
-----------------------------------------------------------------------------------------------------
이번 포스팅의 목적은 이진트리를 배우기 위해 트리가 무엇이고, 지칭하는 단어가 무엇인지에 대해 알아봤습니다.
사실 단어가 무엇을 의미하는지가 매우 중요합니다.
단어의 의미를 모르면 이진트리부터 내용을 이해하는데 조금 무리가 있습니다.
다음 시간에는 트리를 기준으로 적용된 자료구조 이진트리에 대해 알아보도록 하겠습니다.
'프로그래밍 > 자료구조/알고리즘' 카테고리의 다른 글
자바로 구현하는 큐 (Queue) (0) | 2014.10.24 |
---|---|
자바로 구현하는 스택 (Stack) - 1차 수정 (3) | 2014.10.24 |
자바로 구현하는 이진탐색 (BinarySearch) 알고리즘 (0) | 2014.10.16 |
자바로 구현하는 퀵정렬 (Quick Sort) 알고리즘 (2) | 2014.09.01 |
자바로 구현하는 선택정렬 (Selection Sort) 알고리즘 (0) | 2014.08.23 |