개발자공부일기

그래프(Graph)와 트리(Tree) 본문

CS지식/자료구조

그래프(Graph)와 트리(Tree)

JavaCPP 2025. 2. 21. 20:23

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

그래프와 트리의 차이점

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