본문 바로가기
공부/자료구조

[자료구조] 그래프

by 야옹아옹 2021. 8. 23.

그래프란?

정점(노드)와 간선(정점을 이어주는 선)들의 집합을 그래프라고 한다.

객체 간의 연결을 시각적으로 나타낸 것

트리도 그래프 중 하나다.

용어

정점(vertex) - 그래프를 형성하는 노드, V로 표현

간선(edge) - 노드를 연결하는 선, E로 표현

정첨 차수(degree of vertext) - 해당 노드에 연결된 간선의 개수

가중치(weight) - 간선에 대한 값, 문맥에 따라 다양한 것을 나타낼 수 있다. ex) 노드와 노드 사이의 거리를 표현

무지향성 그래프 ( undirected graph )

간선 간에 방향이 없는 그래프

간선은 두 노드 간의 상호 연결을 암시한다. 

반대는 Directed Graph = Digraph

그래프를 구현하는 두가지 방법

인접 행렬 ( adjacent matrix )

행렬의 각 항목이 두 정점 간의 연결을 나타내는 V x V 행렬

인접 리스트 ( adjacency list )

정점을 노드의 키로 사용해, 해당 노드의 이웃들을 리스트에 저장한다.

 

그래프 탐색 방법

연결된 노드와 해당 노드들 간의 간선을 순서대로 검색하는 알고리즘

큐를 사용해서 탐색을 한다. 큐에 현재 정점과 간선으로 연결된 정점들을 넣고 해당 큐에서 꺼낸 정점과 연결된 정점들을 다시 큐에 넣는다. 위 과정을 반복하면서 탐색을 진행한다.

 

다른 연결을 방문하기 전에 하나의 연결을 깊게 파고들어서 순회하는 검색 알고리즘

연결 할 수있는 정점까지 계속 연결을 한 후, 더이상 연결되지 않은 정점이 없으면 그 이전 단계 정점으로 돌아가 살펴본다.

스택을 사용한다.

 

'공부 > 자료구조' 카테고리의 다른 글

[자료구조] 스택  (0) 2021.08.23
[자료구조] Linked List  (0) 2021.08.23
[자료구조] 해시테이블  (0) 2021.08.23
[자료구조] 트리  (0) 2021.08.23
알고리즘 - 기초  (0) 2021.06.25

댓글