0

该图以如下格式表示:

MAX 12
NODE 1 1
NODE 2 2 
NODE 3 3
NODE 4 4
NODE 5 5
NODE 6 6
NODE 7 7
NODE 9 9
NODE 8 8
NODE 10 10
NODE 11 11
NODE 12 12
EDGE 1 2
EDGE 2 3
EDGE 3 4
EDGE 4 5
EDGE 5 6
EDGE 6 7
EDGE 7 8
EDGE 8 9
EDGE 9 10
EDGE 10 11
EDGE 11 12
EDGE 1 12
EDGE 1 3
EDGE 1 4
EDGE 1 6
EDGE 1 8
EDGE 1 11
EDGE 1 10
EDGE 6 10
EDGE 3 6
EDGE 4 6
EDGE 5 7
EDGE 9 11

我需要使用相邻列表来读取这些边缘。但是如果我想把它当作一个无向图,也就是忽略所有边的所有直接性。我怎么知道每对节点的连通性?

例如,在无向图中,(NODE 2, NODE 8) 之间的最短距离是 2 (2->1>8),但是使用 Dijkstra 算法对该图得到 4 (2->3->6->7 -> 8)。如何在仍然使用相同技术读取边的同时表示无向图?

4

1 回答 1

0

如果您真的不想更改读取边缘的技术,则必须遍历所有其他节点以查看您的节点是否在它们的邻接列表中,而不是相反。

这将大大增加您的运行时间,同时不会为您节省太多存储空间,因此我建议您更改边缘读取技术。

于 2016-04-23T10:08:47.640 回答