CS/자료구조

[그래프]인접행렬과 인접리스트

Mev01 2020. 9. 11. 17:28

정의


인접 행렬은 그래프의 연결 관계를 이차원 배열로 나타내는 방식

인접 리스트는 각각의 정점에 인접한 정점들을 리스트로 표현한 방식

 

이런 그래프가 있을 때 각각의 방식으로 표현한다면

 

  1 2 3 4
1 0 1 1 1
2 1 0 0 1
3 1 0 0 0
4 1 1 0 0

인접 행렬은 이런 방식으로 표현되고

 

1: 2, 3, 4

2: 1, 4

3: 1

4: 1, 2

인접 리스트는 이런 방식으로 표현된다.

 

 

장단점

인접 행렬

  • 그래프에 간선이 많은 밀집 그래프의 경우 유리하다.
  • 장점
    • 두 정점을 연결하는 간선의 존재여부를 O(1)안에 알 수 있다.
    • 정점의 차수를 O(N) 안에 알 수 있다.
  • 단점
    • 인접 행렬 전체를 검사할때 O(n^2)가 필요하다.

인접 리스트

  • 그래프에 간선이 적은 희소그래프의 경우 유리하다
  • 장점
    • 인접 행렬 전체를 검사할때 O(N+E)안에 알수 있다.
  • 단점
    • 간선 존재여부, 정점의 차수를 아는데 정점의 차수 만큼의 시간이 필요하다.

 

References


gmlwjd9405.github.io/2018/08/13/data-structure-graph.html

 

[자료구조] 그래프(Graph)란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

sarah950716.tistory.com/12

 

[그래프] 인접 행렬과 인접 리스트

그래프 관련 문제를 풀 때는, 문제 상황을 그래프로 모델링한 후에 푸는 것이 보편적입니다. 이 때, 모델링한 그래프의 연결관계를 나타내는 두 가지 방식이 있습니다. 1. 인접 행렬 2. 인접 리스�

sarah950716.tistory.com

 

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

이진탐색트리의 순회  (0) 2022.02.04