본문 바로가기

이진트리

[자료구조/java] 이진 트리 (Binary Tree) 의 순회 (traversal) * 이진 트리 (Binary Tree) 의 순회 (traversal) "순회(traversal)" 이진 트리에 있는 모든 노드를 한번씩 모두 방문하여 노드가 가지고 있는 데이터를 처리하는 것 - 리스트나 스택, 큐와 같은 선형 자료구조는 순회하는 방법이 한 가지였지만, 트리는 계층적인 구조를 가지고 있기 때문에 여러가지 순회 방법이 있을 수 있다. (1) 현재 노드를 방문하여 데이터를 읽는 작업 D (2) 현재 노드의 왼쪽 서브트리로 이동하는 작업 L (3) 현재 노드의 오른쪽 서브트리로 이동하는 작업 R - 서브트리를 순회하는 순서는 항상 왼쪽 서브트리를 먼저 방문하고, 그 후에 오른쪽 서브트리를 방문한다.- 노드를 방문하는 순서에 따라 전위 순회, 중위 순회, 후위 순회로 나눌 수 있다. ★ 전위 순.. 더보기
[자료구조/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.. 더보기