DFS 是否为未加权的有向图生成 MST?
Does a DFS produce a MST for an unweighted directed graph?
阅读在线帖子让我感到困惑。我知道在未加权的有向图上进行 BFS 遍历会产生最小生成树和最短路径。未加权的有向图上的 DFS 遍历是否可以做同样的事情?
是、Breadth-First和Depth-First都产生生成树。对于未加权的图讨论“最小生成树”没有多大意义,因为给定的具有n个顶点的图上的所有生成树都具有相同的顶点数(n)和相同数量的边 (n-1).
否,Depth-First不保证最短路径。为此,您确实需要 Breadth-First。考虑一个循环图:
a - h - g - f
| |
b - c - d - e
从顶点a开始,depth-first搜索有两种可能的结果:a->b->c->d->e->f->g->h,和a-> h->g->f->e->d->c->b。前者returnsa到h的很长的路径,后者returnsa到b的很长的路径
请注意,在此示例中,图形是无向的。但是无向图是有向图的特例;您可以用相反方向的两个有向边替换每个无向边。
阅读在线帖子让我感到困惑。我知道在未加权的有向图上进行 BFS 遍历会产生最小生成树和最短路径。未加权的有向图上的 DFS 遍历是否可以做同样的事情?
是、Breadth-First和Depth-First都产生生成树。对于未加权的图讨论“最小生成树”没有多大意义,因为给定的具有n个顶点的图上的所有生成树都具有相同的顶点数(n)和相同数量的边 (n-1).
否,Depth-First不保证最短路径。为此,您确实需要 Breadth-First。考虑一个循环图:
a - h - g - f
| |
b - c - d - e
从顶点a开始,depth-first搜索有两种可能的结果:a->b->c->d->e->f->g->h,和a-> h->g->f->e->d->c->b。前者returnsa到h的很长的路径,后者returnsa到b的很长的路径
请注意,在此示例中,图形是无向的。但是无向图是有向图的特例;您可以用相反方向的两个有向边替换每个无向边。