본문 바로가기
Develop/Algorithm

그래프(Graph) 구조

by jaeyoungb 2022. 9. 24.

그래프(Graph)는 실제 세계의 현상이나 사물을 정점(Vertex) 또는 노드(Node)와 간선(Edge)로 표현하기 위해 사용한다.

이해하기 어렵다면, 지하철 노선도라고 생각하면 편하다.

 

그래프 종류는 다음과 같다.

 

무방향 그래프(Undirected Graph)

방향이 없고, 간선을 통해 노드는 양방향으로 갈 수 있다.

보통 노드 A, B가 연결되어 있는 경우, (A, B) 또는 (B, A)로 표기한다.

무방향 그래프(Undirected Graph)

 

방향 그래프(Directed Graph)

간선에 방향이 있는 그래프이다.

보통 노드 A, B가 A -> B로 가는 간선으로 연결되어 있을 경우, <A, B>로 표기한다.(<B, A>와는 다르다)

방향 그래프(Directed Graph)

 

가중치 그래프(Weighted Graph)

간선에 비용 또는 가중치가 할당된 그래프

가중치를 각 노드 간의 거리라고 생각하면 편하다.

가중치 그래프(Weighted Graph)

 

연결 그래프(Connected Graph)와 비연결 그래프(Disconnected Graph)

  • 연결 그래프 : 무방향 그래프에 있는 모든 노드에 대해 항상 경로가 존재하는 경우
  • 비연결 그래프 : 무방향 그래프에서 특정 노드에 대해 경로가 존재하지 않는 경우

비연결 그래프(Disconnected Graph)

 

순환 그래프(Cycle Graph)와 비순환 그래프(Acyclic Graph)

  • 순환 그래프 : 단순 경로의 시작 노드와 종료 노드가 동일한 경우
  •  비순환 그래프 : 사이클이 없는 그래프

비순환 그래프(Acyclic Graph)

 

완전 그래프(Complete Graph)

그래프의 모든 노드가 서로 연결되어 있는 그래프이다.

완전 그래프(Complete Graph)