Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- c++
- Arduino
- vector
- arduino compiler
- LineTracer
- 수광 소자
- Deque
- Algorithm
- 라인트레이서
- stl
- map
- html
- directx
- list
- priority_queue
- Visual Micro
- 시스템프로그래밍
- 운영체제
- set
- queue
- 통계학
- C언어
- 아두이노 컴파일러
- 아두이노
- 컴퓨터 그래픽스
- WinAPI
- Stack
- Array
- 아두이노 소스
Archives
- Today
- Total
Kim's Programming
[C로 만드는 자료구조]트리(Tree) 본문
트리(Tree) - 특성
지금까지 포스팅했던 자료구조(스택(Stack), 리스트(List), 큐(Queue) 등)들은 선형구조였습니다. 하지만 오늘부터 포스팅 할 트리(Tree)는 계층적인 구조를 나타내는 자료구조입니다. 원소들간에 1:多의 관계를 가지는 비선형구조입니다.
트리(Tree) - 응용 분야
트리는 계층을 이용하는 모든 곳에서 이용되게 됩니다.
- 계층적인 조직 표현
조직도같은 계층적인 모양도 트리로 표현가능합니다. - 컴퓨터 디스크의 디렉토리 구조
디렉토리도 트리를 통해 표현이 가능합니다. - 인공지능(AI)에서의 결정트리(Decision Tree)
인공지능에서 앞선 다음 행동들을 결정하기 위해서 트리를 사용합니다.
트리(Tree) - 용어
트리에서만 사용하는 용어들이 있는데 이 용어 들을 알아보겠습니다.
- 노드(Node) : 드리의 구성 요소 하나하나를 의미
- 루트(Root) : 유일한 시작 노드 (노드 A), 부모가 없는 노드를 의미
- 서브트리(Sub-Tree) : 각 노드를 기준으로 그 노드가 루트가 되는 트리
-> Recursive structure - 단말 노드(Terminal Node 또는 Leaf Node) : 자식이 없는 노드 (노드 E, 노드 F, 노드 G 등)
- 중간 노드(내부 노드, 비(非)단말 노드) : 적어도 하나의 자식을 가지는 노드(노드 A, 노드 B, 노드 C, 노드 D)
- 부모 노드 : 바로 위에 있는 노드를 의미
- 형제 노드 : 같은 계층에 있는 노드들끼리의 관계를 의미
- 자식 노드 : 자신의 바로 아래있는 노드를 의미
- 노드의 레벨(Level) : 루트 노드와 현재 노드를 연결하는 간선의 수(Root노드는 0 레벨에 위치한다.)
- 트리의 높이(height, depth) : 트리 최대 레벨 (트리에서) 가장 아래 있는 노드의 레벨)
- 차수(Degree) : 노드가 가지고 있는 자식 노드의 개수(자식이 없는 단말은 차수가 0)
- 트리의 차수(Degree of Tree) : 트리에 있느 노드 차수 중에서 가장 큰값을 의미
트리(Tree) - 그래프와의 차이
트리는 흔히 그래프와 비슷해 보이기도 하는데요. 그래프와는 다른 것이 어떤 것이 다를까요? 다음 두 가지가 다르답니다.
- Root 노드에서 각 노드까지의 경로가 유일해야한다.
- 임의 노드에 대한 부모는 하나여야한다.
위의 2가지를 가지고 그래프와 트리를 구분하게 됩니다.
위의 그림은 트리가 아닌 그래프임을 알 수 있습니다.
트리(Tree) - 트리의 종류
트리는 2가지로 구분할 수 있는데 이진 트리와 일반 트리로 구분하게 됩니다.
왼쪽의 경우를 이진트리 차수가 2인 트리를 이진트리라 하며 그외의 경우를 오른쪽의 경우 일반 트리라고 하게됩니다.
다음 포스팅에서는 이진트리(Binary Tree)와 그의 구현에대해서 알아보겠습니다.
'Programming > Data Structure' 카테고리의 다른 글
[C로 만드는 자료구조]이진 트리(Binary Tree) - 순회 (0) | 2015.12.18 |
---|---|
[C로 만드는 자료구조]이진 트리(Binary Tree) - 배열 (6) | 2015.12.17 |
[C로 만드는 자료구조]덱(Deque) - 동적 (0) | 2015.12.16 |
[C로 만드는 자료구조]큐(Queue) - 동적 (0) | 2015.12.16 |
[C로 만드는 자료구조]큐(Queue) - 배열 (3) | 2015.12.16 |