Tree(python)

트리

정점(node)와 간선(edge)로 구성

용어

  • 루트(root) 노드 :맨 위의 노드
  • 리프(leaf) 노드 : 간선이 없는 노드
  • 내부(internal) 노드 : 루트도 리프도 아닌 노드
  • sibling 노드 : 같은 부모의 child 노드들간의 관계
  • 조상(ancestor) : 부모의 부모(의 부모의 …)
  • 후손(descendant) : 자식의 자식(의 자식의 …)
  • 노드의 수준(level) : 루트 노드로부터 해당 노드까지 거치게 되는 간선의 개수
  • 트리의 높이(height or depth) = 최대 수준(level) + 1
  • 서브 트리 :
  • 노드의 차수 : 서브 트리의 개수
  • 이진 트리(binary tree) : 모든 노드의 차수가 2이하인 트리(서브 트리의 개수가 2개 이하)
  • 포화 이진 트리(full binary tree) : 모든 level에서 노드들이 모두 채워져 있는 이진 트리
    (leaf 노드들을 제외한 노드들은 모두 서브 트리 개수가 2개)
    (높이가 k 이고 노드의 개수가 2k - 1 인 이진 트리)
  • 완전 이진 트리(complete binary tree) : 레벨 k-2 까지는 모든 노드가 2개의 자식을 가진 포화 이진 트리 (k는 높이) 레벨 k-1 에서는 왼쪽부터 노드가 순차적으로 채워져 있는 이진 트리