如果我可以直接访问顶点和边缘,为什么还需要BFS或DFS?

时间:2013-12-25 16:01:53

标签: algorithm graph adjacency-matrix graph-traversal

我正在使用图表实施城际地图。由于它是无向的,我使用了一个上三角形邻接矩阵,使用了一个顶点矢量和Graph类中“指向边缘阵列的指针”的矢量。

我需要遍历这样的图表。顶点有信息,边缘被加权。

当我通过直接访问获得所有顶点和边缘信息时,为什么在这样的遍历中需要BFS或DFS?

1 个答案:

答案 0 :(得分:0)

一般来说,如果:

  • 您可以直接访问所有顶点(以顶点或类似列表的形式),

  • 您不需要从BFS或DFS获取任何信息,例如哪些顶点可从某个顶点到达

然后,您可以直接遍历顶点列表,而无需使用BFS或DFS。

BFS和DFS绝对有用,但如果您的应用程序不需要它,请不要倾向于使用它。

附注 - 我相信邻接矩阵上的BFS和DFS需要O(|V|^2)(因为你需要为每个顶点做一个常量O(|V|)工作以找到它的邻居),其中 - 直接遍历应该采取O(|V|)