[javascript] 그래프 인접 리스트 (Graph Adjacency List) 데이터 구조
그래프는 데이터 요소들 간의 관계를 나타내는 자료 구조입니다. 그래프를 효율적으로 표현하는 방법 중 하나는 인접 리스트입니다. 이 방식은 각 정점의 인접한 정점들을 리스트로 표현하여 그래프를 나타냅니다.
이번 글에서는 JavaScript를 사용하여 그래프를 인접 리스트로 표현하는 방법을 살펴보겠습니다.
인접 리스트의 구현
인접 리스트는 JavaScript의 객체를 사용하여 구현할 수 있습니다. 각 정점을 키로, 해당 정점과 연결된 인접 정점들의 배열을 값으로 갖는 객체를 만들어서 그래프를 표현합니다.
다음은 간단한 인접 리스트를 사용하여 그래프를 표현하는 예제 코드입니다:
// 그래프 정의
const graph = {
A: ['B', 'C'],
B: ['A', 'D'],
C: ['A', 'D'],
D: ['B', 'C'],
};
// 그래프 출력
console.log(graph);
위 코드에서 graph
객체는 각 정점과 해당 정점과 연결된 모든 인접 정점들의 배열을 키-값 쌍으로 가지고 있습니다.
그래프 알고리즘에 사용되는 인접 리스트
인접 리스트는 그래프 알고리즘에서 다양한 용도로 활용됩니다. 깊이 우선 탐색(DFS)이나 너비 우선 탐색(BFS)과 같은 그래프 검색 알고리즘에서도 인접 리스트가 자주 사용됩니다. 또한 최단 경로 찾기나 최소 신장 트리 알고리즘 등에서도 인접 리스트가 유용하게 활용됩니다.
결론
JavaScript를 사용하여 그래프를 인접 리스트로 표현하는 방법에 대해 알아보았습니다. 이러한 방식은 그래프 알고리즘 구현에 있어서 매우 유용하며, 다양한 그래프 문제를 해결하는 데 활용됩니다.
인접 리스트는 그래프의 구조를 간결하게 표현할 수 있고, 그래프 알고리즘의 효율적인 구현을 가능하게 합니다.
참고문헌:
- Skiena, S. S. (2008). The Algorithm Design Manual. Springer Science & Business Media.