边缘的DFS分类是否有效?

时间:2013-12-23 08:58:51

标签: algorithm graph depth-first-search

DFS可用于将边缘分类为转发返回交叉

鉴于边缘和顶点数量的分类,我们能否确定线性复杂度,它是否是DFS的有效结果?如果是这样 - 怎么样?

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

1 个答案:

答案 0 :(得分:2)

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

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

我声称,这些检查一起完善。通过使用拓扑排序线性化约束并构建合理的DFS顺序来验证完整性。