트리와 이진트리
Updated:
강의 사이트
- http://www.kocw.net/home/search/kemView.do?kemId=1148815
트리와 이진트리
1. 트리 (Tree)
-
계층적인 구조를 표현
- 트리는 Node들과 노드들을 연결하는 링크(linke)들로 구성됨
- 맨 위 노드를 root라고 함.
- 부모가 동일한 노드들을 형제 관계(sibling)관계라고 부름.
- 자식이 없는 노드를 leaf 노드라고 부름
- 리프노드가 아닌 노드를 내부(internal) 노드라고 부름.
- 부모-자식 관계를 확장한 것이 조상-자손 (ancestor-descendant) 관계이다.
-
트리에서 어떤 한 노드와 그 노드 의 자손들로 이루어진 트리를 부트리(subtree)
- 레벨 : 트리의 각 층
- 높이 : 트리의 총 레벨
- 노드가 N개인 트리는 항상 N-1개의 링크(link)를 가진다.
- 트리에서 루트에서 어떤 노드로 가는 경로는 유일하다. 또한 임의의 두 노드간의 경로도 유일하다. (같은 노드를 두 번 이상 방문하지 않는다는 조건하에).
2. 이진 트리(Binary Tree)
-
이진 트리에서 각 노드는 최대 2개의 자식을 가진다.
-
각각의 자식 노드는 자신이 부모의 왼쪽 자식인지 오른쪽 자신인지가 지 정된다. (자식이 한 명인 경우에도)
2.1 Expression Tree
2.2 Huffman Code
2.3 Full and Complete Binary Trees
2.4 이진트리의 표현
3. 이진 트리의 순회
- 순회 : 이진 트리의 모든 노드를 방문하는 일
- 중순위(inoder)
- 선순위(preorder)
- 후순위(postorder)
- 레벨오더(level-order)