트리(tree), 해시테이블(hash table)

yyy·2024년 1월 28일

coding_study

목록 보기
2/4

트리 (tree)

: 그래프의 일종으로, 한 노드에서 시작해서 다른 정점들을 순회하며 자기 자신에게 돌아오는 순환이 없는 연결그래프이다.

트리와 관련된 용어

  • 루트 노드(root node) : 부모가 없는 노드
  • 단말 노드(leaf node) : 자식이 없는 노드
  • 노드(node) : 트리를 구성하는 기본요소, 값과 하위노드를 가리키는 포인터를 가진다.
  • 간선(edge) : 노드와 노드를 연결한 선
  • 형제(sibling) : 같은 부모를 가지는 노드
  • 노드의 크기(size) : 자신을 포함한 모든 자식 노드의 개수
  • 레벨(level) : 트리의 특정 깊이를 가지는 노드의 집합
  • 깊이(depth) : 루트에서 어떤 노드에 도달하기 위해 거쳐야 하는 간선의 수
  • 높이(height) : 루트 노드에서 가장 깊은 노드까지의 길이

트리의 특징

  • 노드가 N개인 트리는 항상 N-1개의 간선(edge)을 가진다.
    -> 간선은 항상 정점의 개수-1 개 만큼을 가진다

이진트리 (binary tree)

: 모든 노드가 두개 이하의 자식 노드를 가지는 트리

  • 순회(traversal) : 트리에서 각 노드를 한번씩 체계적으로 방문하는 과정
    -> 부모노드, 왼쪽노드, 오른쪽노드를 어떤 순서로 방문하느냐에 따라 순회방법을 나눈다. 순회방법에 전위순회, 중위순회, 후위순회가 있다.

전위 순회 (preorder traversal)

: 현재노드 → 왼쪽노드 → 오른쪽노드

중위 순회 (inorder traversal)

: 왼쪽노드 → 현재노드 → 오른쪽노드

후위 순회 (postorder traversal)

: 왼쪽노드 → 오른쪽노드 → 현재노드

해시 테이블(hash table)

:

0개의 댓글