본문 바로가기
자료구조

이진 트리

by 달리는 꿈나무 2023. 4. 8.

트리와 터미널로지

트리 구조

  • 자료의 계층적인 성질을 토식으로 표현하는 방법
  • Etc): 조직도, 토너먼트, 카테고리, 파일 시스템, etc…

루트가 있는 트리

  • 트리 구조를 노드와 간선의 집합으로 표현한 것

(일반적인 트리)트리

  • 루트가 없는 트리

→ 사이클이 없고 방향이 없고 연결된 그래프

→ 트리에는 루트가 없지만 루트를 정하면 루티드 트리가 된다.

노드

  • 유닛, 노드 혹은 버텍스라고 부른다.

간선

  • 두 노드 사이에 있는 연결, 엣지 혹은 아크라고 부른다.

부모 노드

  • 노드 X의 부모 노드는 X와 간선으로 연결된 노드 중 루트에 더 가까운 노드

자식 노드

  • 노드 X의 부모 노드는 X와 간선으로 연결된 노드 중 루트에서 더 멀리있는 노드

단말 노드

  • 자식이 없는 노드, 리프 노드라고 한다.

내부 노드

  • 단말 노드가 아닌 노드, 인터널 노드라고 한다.

조상 노드

  • 부모 노드는 조상노드
  • 조상 노드의 부모 노드 역시 조상 노드

자손 노드

  • 자식 노드는 자손 노드
  • 자손 노드의 자식 노드 역시 자손 노드

노드의 깊이

  • 루트 노드와의 거리(루트 노드의 깊이는 0이다.)

레벨

  • 깊이가 같은 노드들의 집합

트리의 높이

  • 노드의 최대 깊이

서브트리

  • 한 노드와 그 노드의 모든 자손 노드를 포함하는 트리

이진 트리

이진 트리

  • 각 노드가 자식 노드를 최대 두 개까지만 가지는 트리
  • 두 자식 노드는 각 왼쪽 자식(Left), 오른쪽 자식(Right)이라고 부름
  • 엄밀히 말해서 이진 트리는 트리가 아니다.
  • 트리는 방향성이 존재하지 않는다.
  • 트리에서는 자식들의 순서가 상관 없는데 이진 트리는 순서가 상관있다.

정 이진 트리

  • 각 노드의 자식 수가 2 또는 0인 트리

완전 이진 트리

  • 가장 깊은 레벨을 제외한 모든 레벨이 가득 차 있음
  • 마지막 레벨의 노드들은 가능한 왼쪽에 존재

포화 이진 트리 ⇒ 다 채워진 완전 이진트리

  • 모든 단말 노드의 레벨이 같음
  • 모든 내부 노드의 자식의 수가 2임

정 이진 트리 정리

⇒ 비어있지 않은 정 이진 트리의 리프 노드 수는 내부 노드의 수보다 한 개 많다.

⇒ Leaf node의 수 = internal node의 수 +1

정 이진 트리의 따름 정리

⇒ 비어있지 않은 이진 트리에서 null pointer의 수는 노드의 수보다 1개 많다.

이진 트리 순회

순회

  • 순서대로 정확하게 한 번씩만 노드를 방문하는 과정

열거

  • 트리의 각 노드를 정확히 한 번씩 나열하는 순회 방법

전위 순회

  • 현재 노드를 방문하고, 자식들을 순회한다.

후위 순회

  • 자식들을 방문하고, 현재 노드를 방문한다.

중위 순회

  • 왼쪽 서브트리를 방문하고, 현재 노드를 방문하고, 오른쪽 서브트리를 방문한다.

알아야 할 것

  • (이진) 트리의 개념 및 그 용어
  • 정 이진 트리의 개념과 정리 및 증명
  • 지정된 트리에 대해 세 개의 주요 순회를 수행하는 방법, 순회를 구현하는 방법

'자료구조' 카테고리의 다른 글

스택  (0) 2023.03.17