개발자공부일기
그래프(Graph)와 트리(Tree) 본문
그래프 와 트리는 컴퓨터 과학에서 객체 간의 관계를 나타내는 데 사용되는 두 가지 기본 데이터 구조입니다. 몇 가지 유사점을 공유하지만, 서로 다른 애플리케이션에 적합하게 만드는 뚜렷한 차이점도 있습니다.

그래프와 트리의 차이점
Graph란 무엇인가요?
그래프 데이터 구조는 노드 (정점이라고도 함)와 이를 연결하는 에지 의 모음입니다 . 노드는 사람, 장소 또는 사물과 같은 엔티티를 나타낼 수 있는 반면 에지는 이러한 엔티티 간의 관계를 나타냅니다.
그래프는 소셜 네트워크 , 교통 네트워크 , 컴퓨터 네트워크 등 다양한 실제 시스템을 모델링하는 데 사용됩니다 .
Tree란 무엇인가?
트리 데이터 구조는 에지로 연결된 노드로 구성된 계층적 데이터 구조입니다. 각 노드는 여러 자식 노드를 가질 수 있지만 부모 노드는 하나만 가질 수 있습니다. 트리의 최상위 노드를 루트 노드 라고 합니다 .
트리는 파일 시스템, XML 문서 , 조직도 와 같은 계층적 데이터를 나타내는 데 자주 사용됩니다 .
그래프와 트리의 차이점
특징 | 그래프 | 트리 |
정의 | 노드(정점)와 간선의 집합으로, 간선은 노드를 연결합니다. | 단일 루트 노드를 갖는 간선으로 연결된 노드로 구성된 계층적 데이터 구조입니다. |
구조 | 사이클(루프)과 분리된 구성요소가 있을 수 있습니다. | 사이클이 없으며 두 노드 사이에 정확히 하나의 경로가 있는 연결 구조입니다. |
루트 노드 | 루트 노드가 없습니다. 노드는 여러 개의 부모를 가질 수도 있고 부모가 전혀 없을 수도 있습니다. | 부모가 없는 지정된 루트 노드가 있습니다. |
노드 관계 | 노드 간의 관계는 임의적입니다. | 부모-자식 관계; 각 노드(루트 제외)는 정확히 하나의 부모를 갖습니다. |
가장자리 | 각 노드는 아무리 많은 수의 모서리를 가질 수 있습니다. | 노드가 n 개 라면 에지 의 개수는 n-1 개가 됩니다. |
횡단 복잡성 | 순환과 연결되지 않은 구성 요소로 인해 탐색이 복잡해질 수 있습니다. | 순회는 간단하며 선형 시간 내에 완료될 수 있습니다. |
애플리케이션 | 소셜 네트워크, 지도, 네트워크 최적화 등 다양한 시나리오에서 사용됩니다. | 일반적으로 파일 시스템, 조직도, HTML DOM, XML 문서 등과 같은 계층적 데이터 표현에 사용됩니다. |
예시 | 소셜 네트워크, 도로 네트워크, 컴퓨터 네트워크. | 파일 시스템, 가계도, HTML DOM 구조. |
그래프와 트리의 주요 차이점
- 사이클: 그래프는 사이클을 포함할 수 있지만, 트리는 사이클을 포함할 수 없습니다.
- 연결성: 그래프는 분리될 수 있지만(즉, 여러 구성 요소를 가질 수 있음), 트리는 항상 연결되어 있습니다.
- 계층 구조: 트리는 계층 구조를 가지고 있으며, 한 정점이 루트로 지정됩니다. 그래프는 이러한 계층 구조를 가지고 있지 않습니다.
- 응용 분야: 그래프는 소셜 네트워크, 교통 네트워크, 컴퓨터 과학 등 다양한 응용 분야에서 사용됩니다. 트리는 종종 파일 시스템 및 XML 문서와 같은 계층적 데이터 구조에서 사용됩니다.
'CS지식 > 자료구조' 카테고리의 다른 글
Red-Black Tree (0) | 2025.03.05 |
---|---|
B+ Tree (0) | 2025.03.04 |
이진트리, 이진 검색트리, 힙 (0) | 2025.03.03 |
Stack과 Queue (0) | 2025.02.17 |
Array과 LinkedList (0) | 2025.02.14 |