Post

Graph and Tree

Algorithm Theory

Graph and Tree

그래프


image

개념

여러 개의 노드와 간선으로 연결된 구조를 그래프 라고 한다.

정점

정점 vertex 또는 노드 node 라고 불린다.

그래프에서 한 점을 의미한다.

간선

정점과 정점을 연결하는 선을 간선 edge 라고 한다.

방향이 있는 간선을 Directed Edge 라고 부르며, 다른 말로 arc 라고 부르기도 한다.

차수

정점에 연결된 간선의 수를 차수 Degree 라고 한다.

  • Out Degree : 노드로 부터 다른 노드로 나가는 간선
  • In Degree : 다른 노드로 부터 들어오는 간선

가중치

간선에 할당되는 비용을 의미한다.


트리


image

개념

부모노드와 자식노드로 이루어진 계층적인 구조를 가진 순환이 없는 무방향 그래프 자료구조이다.

간선의 수는 노드 수 - 1 이다.

\[\begin{equation} E = V - 1 \label{eq:tree_edges} \end{equation}\]

루트 노드

트리의 최상위에 있는 노드이다.

내부 노드

루트노드와 리프노드 사이에 있는 노드이다.

리프 노드

자식노드가 없는 노드이다.


image

깊이

루트노드에서 특정 노드까지 최단거리를 깊이 Depth 라고 한다.

높이

루트노드에서 리프노드까지의 거리 중 가장 긴 거리를 높이 height 이라고 한다.


이진 트리


image

개념

각 노드의 자식 수가 2 개 이하로 구성되어 있는 트리이다.

정이진 트리

자식 노드가 0 또는 2 개인 이진트리이다.

완전 이진 트리

왼쪽에서 부터 채워져 있는 이진트리이다.

마지막 레벨을 제외한 나머지 레벨은 노드가 모두 채워져있다.

변질 이진 트리

모든 부모노드는 하나의 자식노드만을 가지는 이진 트리이다.

포화 이진 트리

모든 레벨의 노드가 꽉 차 있는 이진 트리이다.


image

균형 이진 트리

모든 노드에 대해, 특정 노드의 좌측 서브트리와 우측 서브트리의 높이차이가 1 이하인 이진 트리이다.

탐색, 삽입, 삭제 등의 연산에서 시간 복잡도가 O(log n) 으로 보장된다.


이진 탐색 트리


image

개념

이진 트리의 일종으로, 모든 노드에 대해서 오른쪽 하위 트리에는 해당 노드보다 큰 값을 가지는 노드가 있고

왼쪽 하위 트리에는 해당 노드 기준으로 작은 값을 가지는 노드로 구성되어 있는 트리이다.


탐색, 삽입, 삭제, 수정 모두 O(logN) 의 시간복잡도를 가진다.

단, 우측 그림과 같이 선형적인 모습으로 삽입되어 있다면 O(n) 의 시간복잡도를 가진다.

이진 탐색 트리에서 발전된 트리로는 AVL 트리 , 레드 블랙 트리 가 있다.


Reference