algorithm - 广度优先搜索树如何包含交叉边?

标签 algorithm tree graph-algorithm breadth-first-search tree-traversal

好吧,我知道无向图的广度优先搜索树不能有后边。但我想知道它怎么会有交叉边缘?我无法想象由 OFS 构建的图 G 的生成树,它包含交叉边。

最佳答案

在无向图上使用 BFS 构建生成树的过程会生成以下类型的边:

  1. 树边
  2. 交叉边(连接不同分支上的顶点)

一个简单的例子:想象一个三角形(一个三顶点集团)- 从任何节点开始 BFS,您将在第一步到达其他两个节点。您在它们之间留下了一条不属于生成树的边。

back-edges(连接祖先和非直系 child )怎么样?好吧,正如您所指出的,在无向图上的 BFS 中您不会拥有它们,因为您会在第一次到达祖先时使用该边缘。

事实上,你可以做一个更强的声明——所有非树的边都应该在顶点之间作为同一层,或者相邻的(如果另一边的顶点是一个 sibling ,就像在三角案例中,或者 parent 的 sibling ,还没有被探索过)。无论哪种方式,它都属于交叉边缘的定义。

关于algorithm - 广度优先搜索树如何包含交叉边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937933/

相关文章:

algorithm - 这个算法能在 O(n) 时间内运行吗?

c++ - 必须有一种非常快速的方法来计算这个按位表达式吗?

sql-server - 获取树中节点的路径

c - 在c中填充二叉树函数

克隆图的算法

algorithm - 对 CLRS 随机构建的二叉搜索树证明中的声明感到困惑

tree - 如何从一个复杂的句子中提取主要的主宾短语?

c++ - 如何断定一个单位的士兵是否在网格 map 上相连

图算法的PHP实现

java - Java从数组中删除项目