[알고리즘 이론] Graph 자료구조 (인접행렬 vs 인접리스트 vs 간선리스트)

SHINYEJI·2023년 8월 20일

알고리즘 이론

목록 보기
6/12

📌 Graph

그래프는 정점들의 집합과 이들을 연결하는 간선들의 집합으로 구성된 자료구조이다.

  • 정점 (Vertex) : 그래프 구성요소로 하나의 연결점
  • 간선 (Edge) : 두 정점을 연결하는 선
  • 차수 (Degree) : 정점에 연결된 간선의 수

간선의 수
V : 정점의 개수

  • 무향 그래프 간선 수 = 최대 V * (V-1) / 2
  • 유향 그래프 간선 수 = 최대 V * (V-1)

그래프 표현

  1. 인접 행렬
  2. 인접 리스트
  3. 간선 리스트
  • 간선의 정보를 저장하는 방식, 메모리 성능을 고려해 결정해야 한다.

밀집 그래프 vs 희소 그래프

밀집 그래프

  • 정점 개수에 대해 간선 개수가 많다.
  • 인접 행렬 사용

희소 그래프

  • 정점 개수에 대해 간선 개수가 적다.
  • 인접 리스트 사용

인접 행렬

  • 두 정점을 연결하는 간선의 유무를 행렬로 표현한 것이다.
  • 2차원 배열의 V x V의 정방 행렬
  • 행 인덱스와 열 인덱스는 그래프 정점에 대응된다.
  • 두 정점이 인접하면 인접행렬[V][V] = true로 표현한다.
  • 가중치가 있을 경우엔 인접 값을 true가 아닌 가중치를 넣는다.

인접 리스트

  • 각 정점에 대한 인접 정점들을 순차적으로 표현한 것이다.
  • 하나의 정점에 대한 이접 정점들을 각각 노드로 하는 연결 리스트로 저장한 것이다.

간선 리스트

  • 두 정점에 대한 간선 그 자체를 객체로 표현하여 리스트로 저장한 것이다.

0개의 댓글