상세 컨텐츠

본문 제목

그래프 vs 트리

자료구조&알고리즘/C++

by geminanolja 2025. 1. 13. 20:31

본문

그래프(Graph)와 트리(Tree)는 컴퓨터 과학과 자료구조에서 중요한 개념으로, 트리는 그래프의 한 특수한 형태


1. 그래프의 정의

  • 구조: 정점(Vertex)과 간선(Edge)으로 이루어진 데이터 구조.
  • 종류:
    • 방향 그래프(Directed Graph): 간선에 방향이 있는 그래프.
    • 무방향 그래프(Undirected Graph): 간선에 방향이 없는 그래프.
  • 특성:
    • 사이클(Cycle)을 가질 수 있음.
    • 연결 그래프(Connected Graph)일 수도 있고, 아닐 수도 있음.
    • 루프(Self-loop)와 다중 간선(Multiple edges)을 허용할 수 있음.

2. 트리의 정의

  • 구조: 트리는 그래프의 특수한 형태로, 방향성 비순환 그래프(DAG, Directed Acyclic Graph)의 한 유형.
  • 특성:
    • 루트 노드(Root Node): 하나의 루트를 기준으로 계층적으로 구조화.
    • 사이클 없음(Acyclic): 트리에는 사이클이 존재하지 않음.
    • 연결됨(Connected): 모든 노드가 하나의 연결된 구조를 이룸.
    • 간선의 개수: 트리는 항상 정점(V)의 개수보다 간선(E)이 하나 적음. E=V−1E = V - 1.

3. 그래프와 트리의 주요 차이점

특성 그래프 트리

구조 정점과 간선으로 이루어진 일반적인 구조 계층적 구조로, 하나의 루트에서 시작됨
사이클 허용됨 (사이클이 있을 수 있음) 허용되지 않음 (무조건 사이클이 없음)
연결성 반드시 연결될 필요는 없음 모든 노드가 반드시 연결됨
방향성 방향 그래프 또는 무방향 그래프 모두 가능 일반적으로 방향성이 있는 트리
간선 개수 간선 개수는 제약이 없음 정점 개수 VV보다 하나 적음 (E=V−1E = V - 1)

4. 트리는 그래프의 특수한 형태

  • 트리는 기본적으로 무방향 그래프의 특수한 형태:
    1. 연결 그래프: 모든 정점이 하나의 연결된 구조를 이룸.
    2. 사이클 없음: 사이클이 존재하지 않음.
    3. 간선 개수 제한: E=V−1E = V - 1.
  • 반대로, 모든 그래프가 트리는 아님. 그래프에는 트리에 없는 다음과 같은 요소가 포함되어있으므로 :
    • 사이클이 포함될 수 있음.
    • 연결되지 않은 그래프일 수 있음.

5. 응용

  • 그래프:
    • 소셜 네트워크 분석 (예: 페이스북 친구 관계 그래프)
    • 네트워크 통신 경로 (예: 인터넷 라우팅)
  • 트리:
    • 파일 시스템 구조 (예: 디렉터리 구조)
    • 데이터베이스 인덱스 (예: B-Tree, Binary Search Tree)
    • 게임 트리 (예: 체스 게임 시뮬레이션)

그래프와 트리는 서로 연관되어 있지만, 트리가 그래프의 특별한 경우라는 점을 이해하자!

관련글 더보기