그래프(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. 트리는 그래프의 특수한 형태
- 트리는 기본적으로 무방향 그래프의 특수한 형태:
- 연결 그래프: 모든 정점이 하나의 연결된 구조를 이룸.
- 사이클 없음: 사이클이 존재하지 않음.
- 간선 개수 제한: E=V−1E = V - 1.
- 반대로, 모든 그래프가 트리는 아님. 그래프에는 트리에 없는 다음과 같은 요소가 포함되어있으므로 :
- 사이클이 포함될 수 있음.
- 연결되지 않은 그래프일 수 있음.
5. 응용
- 그래프:
- 소셜 네트워크 분석 (예: 페이스북 친구 관계 그래프)
- 네트워크 통신 경로 (예: 인터넷 라우팅)
- 트리:
- 파일 시스템 구조 (예: 디렉터리 구조)
- 데이터베이스 인덱스 (예: B-Tree, Binary Search Tree)
- 게임 트리 (예: 체스 게임 시뮬레이션)
그래프와 트리는 서로 연관되어 있지만, 트리가 그래프의 특별한 경우라는 점을 이해하자!