더북(TheBook)

2.6.3 인접 리스트로 그래프 표현하기

행렬을 이용하여 그래프를 표현할 때의 가장 큰 문제점은 노드 개수의 제곱에 비례하는 메모리를 사용한다는 점입니다. 노드 개수가 증가함에 따라 메모리 사용량은 크게 늘어납니다. 그러므로 메모리를 좀 더 적게 사용하는 방법을 생각해봐야 합니다.

어느 그래프에서나 정해진 수의 노드가 있고, 각 노드에서 연결될 수 있는 노드의 최대 개수는 전체 노드 개수와 같습니다. 행렬을 사용할 경우, 두 노드가 서로 연결되어 있지 않더라도 모든 노드 사이의 에지 정보를 저장해야 합니다. 이러한 방식 대신 각 노드에 직접 연결되어 있는 노드의 ID만 저장하는 방식으로 그래프를 표현할 수 있습니다. 이러한 방식을 인접 리스트(adjacency list)라고 합니다.

다음 연습 문제에서 인접 리스트를 사용하여 그래프를 표현해보고, 앞서 인접 행렬을 사용하는 방식과의 차이점에 대해 생각해보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.