인접 행렬_인접 리스트_PYTHON

👀·2022년 8월 8일
0

프로그래밍에서는 그래프를 나타낼 수 있는 방법이 크게 2가지 존재한다.

  1. 인접행렬(adjacency matrix)
  • 2차원 배열로 그래프의 연결관계를 나타낸 것
  • 연결된 노드는 1, 연결되지 않은 노드는 0으로 표기할 수 있다.
  • 연결되지 않은 노드를 python에서 표기할 때 무한의 비용(999999999)로도 표기할 수 있다.
    -> 아래의 코드에 0에는 무한의 비용을 넣을 수도 있다.
graph = [
#   1   2  3
    [0, 1, 1], # 1
    [1, 0, 0], # 2
    [1, 0, 0]  # 3
]
  1. 인접리스트(adjacency list)
  • 리스트로 그래프의 연결을 나타내는 방식
  • 각 노드의 연결된 노드를 리스트로 나타낸다.

인접행렬 vs 인접리스트

  • 인접행렬은 노드별로 연결되어 있는지 파악하기가 인접리스트에 비해 편하다. 그러나 데이터가 많아 진다면 차지하는 공간도 많아지기에 공간복잡도 측면으로는 인접리스트가 더 좋다고 볼 수 있다.
  • 인접리스트는 특정 노드와 연결되어 있는지를 확인하기 위해서는 그 노드를 순회해야 한다.
profile
👋🏻

0개의 댓글