If today was hard, tomorrow will be easy.

간결하고 의미있는 코딩을 위하여.

GitHub - Inchijeong 바로가기→

DataStructure

[Tree] Tree의 개념, 종류

꼬스차 2021. 1. 14. 19:22
728x90
반응형

트리(Tree)에 대해 알아볼겠습니다.

트리(Tree)란?

  • 부모 자식관계를 가지는 자료 구조
  • 계층, 그룹이 있다.
  • 부모 노드(Parent Node)는 하나 이상의 자식(Child Node)을 갖고 있다.(Leaf Node 제외)
  • 부모가 없는 맨 위의 노드 루트 노드(Root Node)라 부른다
  • 트리의 맨 끝에 자식이 없는 노드를 잎 노드(Leaf Node)라 부른다.
  • 루트 노드부터 잎 노드까지 Level이 0, 1, 2 ... 하나씩 증가한다.

이진 트리(Binary Tree)

  • 자식 노드가 최대 2개까지면 이진트리(Binary Tree)
  • 자식 노드가 최대 3개까지면 Ternary Tree

이진 탐색 트리(Binary Search Tree)

  • 왼쪽 자식 노드들과 그 이하 노드들은 자신보다 작아야하고 오른쪽 노드들과 그 이하 노드들은 자신보다 커야한다.
  • 왼쪽 자식들 < 자신 < 오른쪽 자식들
  • 값을 찾을때 용의함

균형(Balance)

  • 한쪽으로 치우치면 unbalanced
  • balanced는 양쪽의 노드가 정확하게 일치할 필요없다
  • balanced Tree의 종류
    • red-black tree
    • AVL tree

완전 이진 트리(Complete Binary Tree)

  • 노드들이 레벨별로 왼쪽부터 채워져 있는 트리

정 이진 트리(Full Binary Tree)

  • 한개의 자식 노드를 가진 노드가 하나도 없는 트리
  • 모든 노드가 자식이 0개 또는 2개

포화 이진 트리(Perfect Binary Tree)

  • 모든 노드가 2개의 자식 노드를 가진다.
  • 모든 노드의 개수가 2^n -1

링크

아래 강의를 참고하여 작성하였습니다.

728x90
반응형

'DataStructure' 카테고리의 다른 글

[Tree] Binary Heaps 개념  (0) 2021.01.14
[Tree] Binary Tree 순회 방법  (0) 2021.01.14
[Queue] Queue 개념, 구현  (0) 2021.01.14
[Stack] Stack 개념, 구현  (0) 2021.01.14
[LinkedList] 단방향, 양방향 연결 리스트  (0) 2021.01.14