그래프


그래프

그래프는 연결되어 있는 원소 간의 관계를 표현한 자료구조이다.
연결할 객체를 나타내는 정점과 객체를 연결하는 간선의 집합으로 구성된다.

그래프 용어

Untitled 10.png

그래프 종류

무방향 그래프(undirected graph)

간선에 방향이 표시 되지 않은 그래프

Untitled 1 5.png

방향 그래프(directed graph)

간선에 방향성이 존재하는 그래프

Untitled 2 3.png

가중치 그래프(weighted graph)

간선에 비용이나 가중치가 할다된 그래프

Untitled 3 3.png

연결 그래프(connected graph)

모든 정점 사이에 경로가 존재하는 그래프 ↔ 비연결 그래프

Untitled 4 3.png

완전 그래프(complete graph)

모든 정점 간에 간선이 존재하는 그래프

Untitled 5 3.png

그래프의 구현 방법

크게 2가지 방법이 있다.

인접행렬 Adjacency Matrix

결국 그래프에서 간선은 정점과 정점을 이어준다.
이러한 대전제를 바탕으로 행렬을 이용해서 표현할 수 있다.

Untitled 6 2.png

정점의 수가 n일 때 n x n의 행렬을 만들고, 행렬에 정점간의 간서의 정보를 표현한다.
정점 사이에 간선이 존재하면 1, 없으면 0으로 표시한다. 만일 가중치 그래프의 경우 가중치 값을 넣어준다.
무방향 그래프의 경우 대칭 행렬이 되고 방향 그래프의 겨우 비대칭 행렬이 된다.

인접 리스트 Adjacency List

체이닝 방법이라고 생각하면 된다.
Untitled 7 2.png

연결리스트를 사용하여 정점에 연결되어 있는 정점들을 리스트로 나타내는 방식이다.

reference