본문 바로가기
카테고리 없음

트리와 그래프의 차이점 3가지 (순환, 방향성)

by tech-korea 2026. 2. 11.

자료구조를 공부하다 보면 "트리(Tree)도 노드와 간선으로 되어 있고, 그래프(Graph)도 노드와 간선으로 되어 있는데 도대체 둘은 뭐가 다른 거야?"라는 의문이 생깁니다. 결론부터 말씀드리면 "트리는 그래프의 특수한 형태(부분 집합)이다"라고 정의할 수 있습니다. 즉, 모든 트리는 그래프이지만, 모든 그래프가 트리는 아닙니다.

하지만 실무나 면접에서는 이 둘을 엄격하게 구분해야 할 때가 많습니다. 데이터 모델링을 할 때 순환 참조를 허용할 것인지, 부모-자식 관계를 강제할 것인지에 따라 선택이 달라지기 때문입니다. 오늘은 트리와 그래프를 구분 짓는 결정적인 차이점 3가지를 명확하게 비교해 드리겠습니다.

1. 첫 번째 차이: 순환(Cycle)의 유무

트리와 그래프를 가르는 가장 큰 기준은 바로 '돌고 도는 길'이 있느냐입니다.

  • 그래프: 순환(Cycle)이 존재할 수 있습니다. A에서 출발해서 B, C를 거쳐 다시 A로 돌아오는 경로가 허용됩니다. 지하철 2호선처럼 순환선이 있는 구조는 그래프로만 표현 가능합니다.
  • 트리: 순환이 절대 존재할 수 없습니다 (Acyclic). 트리는 계층적 구조이기 때문에 밑으로 내려갔다가 다시 위로 올라와서 제자리로 돌아오는 것이 불가능합니다. 만약 트리에 선을 하나 더 그어서 순환이 생긴다면, 그 순간 그것은 트리가 아니라 그래프가 됩니다.

2. 두 번째 차이: 방향성과 계층 구조 (부모-자식)

두 자료구조가 바라보는 데이터의 '관계'가 다릅니다.

  • 그래프: 평등한 관계입니다. 방향 그래프일 수도 있고 무방향 그래프일 수도 있습니다. 정점들 사이에 부모나 자식 같은 상하 위계질서가 없습니다. 친구 관계나 도로망처럼 서로 연결되어 있을 뿐입니다. 루트 노드(시작점)라는 개념도 딱히 없습니다.
  • 트리: 철저한 계층(Hierarchy) 관계입니다. 반드시 방향성(위에서 아래로)을 가집니다. 부모 노드와 자식 노드라는 명확한 역할이 있으며, 모든 노드는 유일한 루트 노드(Root)로부터 뻗어 나옵니다.

3. 세 번째 차이: 루트 노드와 간선의 개수 규칙

구조적인 제약 조건에서도 큰 차이를 보입니다.

  • 그래프: 루트 노드라는 개념이 없습니다. 어느 정점에서든 탐색을 시작할 수 있습니다. 또한, 간선의 개수에 제한이 없습니다. 모든 정점이 서로 다 연결되어 있어도 되고, 아예 연결이 끊긴(고립된) 부분이 있어도 그래프라고 부릅니다.
  • 트리: 반드시 하나의 루트 노드가 존재해야 합니다. 그리고 간선의 개수에 엄격한 수학적 공식이 적용됩니다. 정점(노드)이 N개라면, 간선은 반드시 N-1개여야 합니다. 이보다 적으면 연결이 끊긴 것이고, 많으면 순환이 생깁니다.

4. 비교 요약표 (Comparison Table)

비교 항목 트리 (Tree) 그래프 (Graph)
상위 개념 그래프의 한 종류 (DAG의 일종) 가장 포괄적인 네트워크 모델
순환 (Cycle) 불가능 (Acyclic) 가능 (Cyclic / Acyclic)
루트 노드 1개 존재 없음 (모든 노드가 평등)
부모-자식 존재함 (계층형) 없음 (네트워크형)
[핵심 요약]
1. 트리는 순환이 없고 계층 구조를 가지는 특수한 형태의 그래프입니다.
2. 트리는 루트 노드가 하나여야 하며, 노드가 N개일 때 간선은 정확히 N-1개입니다.
3. 모델링하려는 데이터가 순환(Loop)하거나 다대다(N:M) 관계라면 반드시 그래프를 사용해야 합니다.