데이터들은 다양한 Graph 형태로 연결되어 있다. Tree와 Linked List 또한 Graph의 종류 중 하나이다.
Directed vs Undirected
예시로 replit에 작성하였다.
Graph는 Array 또는 Hash table로 표현될 수 있다. 아래는 Array 형태이다. (index가 key값임)
// Edge List
// 연결된 node를 나타냄
const graph = [[0, 2], [2, 1], [1, 3], [2, 3]]
// Adjacent List
// node(index)에 연결된 다른 node들을 나타냄
const graph = [[2], [2, 3], [0, 1, 3], [1, 2]]
// Adjacent Matrix
// 2차원 Matrix로 나타냄
const graph = [
[0, 0, 1, 0],
[0, 0, 1, 1],
[1, 1, 0, 1],
[0, 1, 1, 0]
]
이미지는 visualgo에서 테스트 해본 결과이다. 코드처럼 3가지 형태로 나타내진다.
(참고 : visualgo에서 노드를 지우려면 Select + Del 로 지운다.)