본문 바로가기

알고리즘

자료구조 4주차_그래프

728x90

자료구조 4주차_그래프


그래프란?

비선형구조

연결 관계에 초점을 맞춤

 

            로제 - 사나
             ⎜       
      제니 - 르탄

로제, 사나, 제니, 르탄이는 연결관계를 가지는 노드(Node)

르탄이와 제니는 간선(Edge)으로 연결되어 있음

르탄이와 로제는 인접노드(Adjacent Node)

 

📌 유방향 그래프(Directed graph) : 방향이 있는 간선(단방향) 

로제 -> 사나

로제에서 사나로는 갈 수 있지만, 사나에서 로제로는 갈수 없음

 

📌 무방향 그래프(Undirected graph) : 방향이 없는 간선

로제 - 사나

로제에서 사나로 갈 수 있고 사나에서 로제로도 갈 수 있음


📌 인접 행렬

          2 - 3
          ⎜       
      0 - 1

1. 이를 인접 행렬, 2차원 배열로 나타내면 다음과 같습니다!
  0  1  2  3
0 X  O  X  X
1 O  X  O  X
2 X  O  X  O
3 X  X  O  X

이걸 배열로 표현하면 다음과 같습니다!
graph = [
    [False, True, False, False],
    [True, False, True, False],
    [False, True, False, True],
    [False, False, True, False]
]

O(노드^2) 공간을 많이 차지함 but 즉각적인 관계 파악하기 쉬움

 

📌 인접 리스트

2. 이번에는 인접 리스트로 표현해보겠습니다!
인접 리스트는 모든 노드에 연결된 노드에 대한 정보를 차례대로 다음과 같이 저장합니다.

0 -> 1
1 -> 0 -> 2
2 -> 1 -> 3
3 -> 2

이를 딕셔너리로 표현하면 다음과 같습니다!
graph = {
    0: [1],
    1: [0, 2]
    2: [1, 3]
    3: [2]
}

o(노드 + 간선) 공간을 적게 차지하지만, 즉각적인 연결 관계를 파악하기 어려움

 

 

'알고리즘' 카테고리의 다른 글

데일리 알고리즘 230112  (0) 2023.01.12
데일리 알고리즘 230111  (0) 2023.01.11
자료구조 4주차_힙  (0) 2023.01.10
데일리 알고리즘 230110  (0) 2023.01.10
데일리 알고리즘 230109  (0) 2023.01.10