图的邻接表表示法

邻接表

存储方式:表头存放节点,相邻节点存放于之后的链表中。
** 使用 Map 模拟 **

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Graph {
constructor() {
this.point = []
this.map = new Map()
}

addPoint(point) {
this.point.push(point)
this.map.set(point, [])
}

// 无向
addEdge(pointA, pointB) {
this.map.get(pointA).push(pointB)
this.map.get(pointB).push(pointA)
}

print() {
for (let item of this.point) {
console.log(item + " -> " + this.map.get(item).join(","))
}
}
}

Test

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var graph = new Graph()
var topArr = ["A", "B", "C", "D", "E", "F", "G", "H", "I"]
for (let item of topArr) {
graph.addPoint(item)
}

graph.addEdge("A", "B")
graph.addEdge("A", "D")
graph.addEdge("A", "E")
graph.addEdge("A", "H")
graph.addEdge("F", "G")
graph.addEdge("I", "B")
graph.addEdge("I", "C")

graph.print()