Skip to content

문제 5 · 인접 리스트와 완전 그래프

문제 5 [3점]

인접 리스트adjacency list는 완전 그래프complete graph를 위해 사용하기에 적절한지, 혹은 그렇지 않은지 이유와 함께 서술하시오.

풀이 및 해설

결론: 적절하지 않다.

인접 리스트는 각 정점마다 그 정점에 인접한 정점들의 리스트를 저장한다. 공간은 O(V+E) 로, 간선이 적은 희소 그래프sparse graph에서 이점이 있다.

그런데 완전 그래프는 모든 정점 쌍이 간선으로 연결되어

E=(V2)=V(V1)2=Θ(V2)

이다. 따라서 인접 리스트의 공간도

O(V+E)=O(V+V2)=O(V2)

가 되어, 인접 행렬과 같은 차수의 공간을 쓴다. 게다가 인접 리스트는 각 간선을 노드로 저장하면서 다음 노드로 향하는 포인터까지 함께 두므로, 같은 O(V2) 라도 포인터 오버헤드와 캐시 비지역성으로 실제 메모리 사용량과 접근 속도가 더 나쁘다. 또한 두 정점 u,v 의 인접 여부를 확인하려면 u의 리스트를 훑어야 해서 O(V) 가 든다(인접 행렬은 O(1)).

완전 그래프에서는 E=Θ(V2)인접 리스트의 장점(희소성)이 사라진다.

정리하면, 완전 그래프처럼 밀집한 그래프에서는 간선 조회가 O(1) 이고 포인터 오버헤드가 없는 인접 행렬이 더 적절하다. 인접 리스트는 간선이 정점 수에 비해 훨씬 적은 희소 그래프에 쓰는 것이 맞다.

PDF