确定无向图是否为树

时间:2016-10-04 16:19:48

标签: graph-algorithm graph-theory

我发现找到后边缘的深度优先方法是一种解决方案。但是,有没有其他方法可以确定无向图是否是树?

更具体地说,我如何使用邻域(节点或节点集)的概念来制定这样的算法?我可以找到并统计周期吗?

1 个答案:

答案 0 :(得分:0)

一种简单的方法来自图的定义,即树。

  1. 已连接且
  2. 没有周期(非循环)
  3. 首先,一个简单的bfs将给你答案,如果1为真,那么只计算边数,如果它们是n-1,那么它是非循环的。

    第二次非常简单,只计算边缘。

    <强>第一

    • 将所有节点标记为未访问
    • 对于每个节点c,如果未访问此节点
      • 创建一组新的空节点,即当前组件
      • 将此节点排入队列以进行遍历
      • 虽然有任何节点t排队
        • 从队列中删除此节点
        • 将每个未访问的邻居标记为已打开并将其排入队列以进行遍历
        • 将此节点标记为已遍历
        • 将此节点添加到当前组件
      • 关闭当前组件,并将其添加到组件集