Same Edges, Different Shape

같은 간선도 리스트와 행렬에서는 완전히 다른 모양으로 저장된다

표현을 바꾸면 메모리와 질의 비용뿐 아니라 디버깅할 때 보는 자료의 모양도 달라집니다.

입력 간선

(1,2)(1,3)(2,4)
Adjacency List
1
2, 3
2
4
3
empty
4
empty
Adjacency Matrix
1
2
3
4
1
0
1
1
0
2
0
0
0
1
3
0
0
0
0
리스트: 저장은 작고 순회가 빠르지만 존재 질의는 이웃을 훑습니다.
행렬: 존재 질의는 빠르지만 빈 칸까지 모두 저장합니다.

핵심: 같은 데이터를 다른 형태로 저장하면 이후 알고리즘의 병목도 달라집니다.