【问题标题】:Is DFS classification of edges valid?边的 DFS 分类是否有效?
【发布时间】:2013-12-23 08:58:51
【问题描述】:

DFS 可用于将边分类为 treeforwardbackcross

给定边的分类和顶点的数量,我们可以确定线性复杂度,它是DFS的有效结果吗?如果是这样 - 如何?

例如这里是无效的分类:(不管我们选择的根顶点和访问孩子的顺序如何,都不可能得到这样的分类)

【问题讨论】:

  • 你能定义什么是树、前进、后退和交叉吗?
  • @ElKamina 见Wikipedia
  • @Dukeling,感谢您提供图片 :) 顺便说一句,谁以及为什么投反对票?

标签: algorithm graph depth-first-search


【解决方案1】:

抱歉,回答的有点简短:是的,这是一个算法。验证树的边缘确实形成了一棵树。对于每个其他边,计算其端点的最叶公共祖先。对于前边缘,这应该是尾部。对于后边缘,这应该是头部。对于交叉边缘,这两者都不应该。

假设到目前为止一切看起来都很好,从交叉边缘的头部和尾部向根路径通过不同的子节点到达 LCA。在生成给定分类的每个可能的 DFS 顺序中,头部的孩子在尾部的孩子之前被访问。收集所有这些约束并验证没有循环。

我声称,这些检查加在一起是合理且完整的。完整性通过拓扑排序对约束进行线性化并构造合理的 DFS 顺序来验证。

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多