본문 바로가기

트리

[자료구조/java] 이진 트리 (Binary Tree) * 이진 트리 (Binary Tree) "노드의 차수를 2 이하로 정하여 트리의 노드구조를 일정하게 정의함으로써 연산을 단순화 시킨 트리" - 이진트리는 왼쪽 자식노드와 오른쪽 자식노드 2개만을 가질 수 있다. (공백 노드도 이진 트리의 노드로 취급)- n개의 노드를 가지는 이진 트리는 항상 (n-1)개의 간선을 가진다. - 높이가 h인 이진 트리가 가질 수 있는 노드의 최소 개수는 (h+1)개가 되며, 최대 개수는 (2^(h+1)-1)개가 된다. * 이진 트리 (Binary Tree)의 분류 포화 이진 트리(Full Binary Tree)- 모든 레벨에 노드가 꽉 차서 포화 상태인 이진 트리를 의미- 높이가 h 일때 2^(h+1)-1 개의 최대 노드수를 갖는 이진트리 완전 이진 트리(Complete B.. 더보기
[자료구조/java] 트리 (Tree) * 트리 (Tree) "비선형 자료구조 중에서 자료들 간에 계층관계를 가진 계층형 자료구조(Hierarchical Data Structure)이다." - 트리를 구성하는 원소(자료)를 노드라고 하고 노드를 연결하는 선을 간선(edge)이라 한다.- 트리의 시작 노드를 루트 노드(Root)라 하고 레벨(level) 0이 된다.- 각 노드는 자식노드 수만큼의 서브트리(subtree)를 갖는다.- 한 노드가 가지는 서브 트리의 수, 즉 자식노드의 수를 그 노드의 차수(degree)라 한다.- 노드의 차수 중에서 가장 큰 차수는 트리의 차수가 된다. 트리 A의 전체 차수는 3이된다.- 자식이 없는 노드를 리프 노드(Leaf Node) 또는 단말 노드라고 한다.- 조상은 자기와 연결된 선을 따라 위로 올라가면서 .. 더보기