[Coding_Test] Tree 설명

Tree

Tree는 서로 연결된 Node의 계층형 자료구조로써, root와 부모-자식 관계의 subtree로 구성되어 있다.

Tree 관련 개념

  • 노드(Node) : 트리는 보통 노드로 구현된다.
  • 간선(Edge) : 노드 간의 연결된 선
  • 루트 노드(Root) : 트리는 항상 루트에서 시작한다.
  • 리프 노드(Leef) : 더 이상 뻗어나갈 수 없는 마지막 노드
  • 자식 노드(Child) , 부모 노드(Parent), 형제 노드(Sibling)
  • 차수(Degree) : 각 노드가 갖는 자식의 수, 모든 노드의 차수가 n개 이하인 트리를 n진 트리라 한다.
  • 조상(ancestor) : 위쪽으로 간선을 따라가면 만나는 모든 노드
  • 높이(Height) : 루트 노드에서 가장 멀리 있는 리프 노드까지의 거리, 즉 리프 노드 중에 최대 레벨 값
  • 서브트리(Subtree) : 트리의 어떤 노드를 루트로 하고, 그 자손을 구선된 트리를 subtree라 한다.

이진트리 코드및 그림

트리순회 Traversal

트리 순회(Traversal)란 트리 탐색(Search)라고도 불리고, 트리의 각 노드를 방문하는 과정을 말한다. 모든 노드를 한 번씩 방문해야 하므로, 완전 탐색이라고도 불린다. 순회방법으로는 너비우선 탐색의 BFS와 깊이 우선 탐색의 DFS가 있다.

BFS

DFS

전위 순회(Preorder)

중위 준회(inorder)

후위 순회(Postorder)

참조 : 개발남노씨 자료구조

Leave a comment