공부중
[자료구조] 트리(Tree) 본문
이번에는 트리 자료 구조이다.
트리(Tree)는 말그대로 …
나무이다.
트리구조는 나무를 보고 나뭇가지가 쭉쭉 뻗어있는 모습이 연상되서
이름이 그렇게 지어진 것 같다.
이렇게 나뭇가지처럼 뻗은 모습이 연상 된다.
트리는 계층적 관계(Hierarchical Relationship)를 표현 한 자료 구조이다.
단순히 무엇인가 저장하고 꺼내는 것이 전부가 아닌 무엇인가 표현하는 것이다
단지 표현을 위해서 저장과 삭제라는 기능이 제공되어 있을 뿐 이다.
트리가 아래로 뻗으나 옆으로 뻗으나 중요치는 않다.
중요한 것은 가지가지를 늘려가며 뻗어간다는 사실이다.
이러한 구조도 트리 구조이다.
방향만 다르고 가지가 뻗어가는 모습은 같지 않은가?
일단 트리에 관해서 용어를 설명하자면 …
| node |
트리의 구성요소에 해당하는 A,B,C,D,E,F와 같은 요소 | |
| edge |
노드와 노드를 연결하는 연결선 | |
| root node |
트리 구조에서 최상위에 존재하는 A와 같은 노드 | |
| terminal node |
아래로 또 다른 노드가 연결되어 있지 않은 E,F,C,D | |
| internal node |
단말 노드를 제외한 모든 노드로 A,B와 같은 노드 |
단말 노드는 나무의 구조상에 잎에 해당한다고 해서 '잎사귀 노드(leaf node)'라고도 불린다.
내부 노드는 단말노드가 아니여서 '비단말 노드(noninternal node)'라고도 불린다.
노드간에는 부모(parent),자식(child) , 형제(sibling)성립되어 이렇게 표현 가능하다.
|
|
|
이 관계들은 상대적으로 B가 A의 자식노드지만 E,F의 부모 노드도 된다.
그리고 특정 노드의 위에 위치한 모든 노드를 조상노드(Ancester node)라고 하고
특정 노드의 아래에 위치한 모든 노드를 후손노드(Descendant node)라고 부른다.
위 그림을 보면 큰 트리는 작은 트리로 구성이 된다.
이렇게 큰 트리에 속하는 작은 트리를 서브 트리(sub tree)라고 한다.
빨간 박스는 A를 루트노드로 하는 서브트리이고
검정 박스는 B를 루트노드로 하는 서브트리이다.
'Programing > 자료구조' 카테고리의 다른 글
[자료구조] 이진트리(Binary Tree) - 2 (0) | 2013.01.14 |
---|---|
[자료구조] 이진트리(Binary Tree) - 1 (2) | 2013.01.11 |
[자료구조] 큐(Queue)-2 (0) | 2013.01.07 |
[자료구조] 큐(Queue)-1 (0) | 2013.01.07 |
[자료구조] 스택(Stack) (0) | 2013.01.04 |