본문 바로가기
안 씀/자료구조-개념

그래프

by unhyepnhj 2024. 9. 6.

그래프(graph): 객체 사이의 연결 관계를 표현할 수 있는 자료 구조

- 그래프 구조는 인접 행렬이나 인접 리스트로 메모리에 표현되고 처리

- 다양한 문제들을 그래프로 표현하여 컴퓨터 프로그래밍으로 해결


그래프의 정의와 용어

 

그래프: 정점(vertex)과 간선(edge)들의 유한 집합

- 수학적으로는 G=(V, E)와 같이 표시

- V(G)는 그래프 G의 정점들의 집합, E(G)는 그래프 G의 간선들의 집합

- 정점: 여러 가지 특성을 가질 수 있는 객체, 노드(node)

- 간선: 정점들 관의 관계, 링크(link)

 

무방향 그래프(undirected graph): 간선을 통해서 양방향으로 갈 수 있는 그래프

- 정점 A와 B를 연결하는 간선은 (A, B)로 표현

- (A, B)와 (B, A)는 동일한 간선

방향 그래프(directed graph): 간선에 방향성이 존재하는 그래프

- 간선을 통해 한 방향으로만 갈 수 있음

- 정점 A에서 B로 가는 간선은 <A. B>로 표시

- <A, B>와  <B, A>는 서로 다른 간선

 

네트워크/가중치 그래프(weighted graph): 간선에 비용이나 가중치가 할당된 그래프

 

부분 그래프(subgraph): 어떤 그래프의 정점의 일부와 간선의 일부로 이루어진 그래프

- 그래프 G의 부분 그래프 S는 V(S)⊆V(G) E(S)⊆E(G)를 만족

 

인접 정점(adjacent vertex): 간선에 의해 직접 연결된 정점

- 무방향 그래프에서 정점의 차수(degree)는 그 정점의 인접 정점 수

- 무방향 그래프에서 모든 정점의 차수를 합하면 간선 수의 2배(하나의 간선이 두 개의 정점에 인접하므로)

- 방향 그래프에서는 외부에서 오는 간선의 개수를 진입 차수(in-degree), 외부로 향하는 간선의 개수를 진출 차수(out-degree)라 함

 

경로

- 무방향 그래프에서 정점 s로부터 정점 e까지의 경로는 정점의 나열 s, v₁, v₂ , ... vₖ, e

- 나열된 정점들 간에는 반드시 간선 (s, v₁), (v₁, v₂), ..., (vₖ, e)가 존재해야 함

- 방향 그래프라면 <s, v₁>, <v₁, v₂>, ..., <vₖ, e>가 필요

- 경로들 중 반복되는 간선이 없을 경우, 이러한 경로를 단순 경로(simple path)라 함

- 단순 경로의 시작 정점과 종료 정점이 동일하다면 사이클(cycle)

 

연결 그래프(connected graph)

- 무방향 그래프 G에 있는 모든 정점 쌍에 대하여 항상 경로가 존재한다면 G가 "연결되었다"고 함

- 이때 G는 연결 그래프

- 연결 그래프가 아닌 그래프는 비연결 그래프(unconnected graph)

- 트리는 그래프의 특수한 형태로서, 사이클을 가지지 않는 연결 그래프

 

완전 그래프(complete graph)

- 그래프에 속해 있는 모든 정점이 서로 연결

- 무방향 완전 그래프의 정점 수를 n이라 할 때, 하나의 정점은 (n-1)개의 다른 정점으로 연결되므로 간선의 수는 n*(n-1)/2


그래프 추상 데이터 타입

'안 씀 > 자료구조-개념' 카테고리의 다른 글

히프 정렬  (0) 2024.08.26
히프의 구현  (0) 2024.08.25
히프  (0) 2024.08.24
우선순위 큐의 구현  (0) 2024.08.24
우선순위 큐  (0) 2024.08.24