graph - 原始图的拓扑排序是否与转置图的 dfs 相同
问题描述
我有一种直觉,原始图的拓扑排序与转置图的 dfs 相同(反转所有边)
A -> B -> C
D -> B
拓扑排序是 [D, A, B, C] 或 [A, D, B, C]
如果我转置图形(反转所有边)
C -> B -> A
B -> D
dfs 还给出 [D, A, B, C] 或 [A, D, B, C]
拜托,我无法在数学上证明/反驳它。如果命题不正确,反例会有所帮助
解决方案
这不是巧合——您刚刚重新发现了一种用于查找拓扑排序的通用算法!
一种通常用于查找拓扑排序的算法通过执行 DFS 并以完成时间的相反顺序写出节点来工作。(试试看!)您的算法本质上与此等效。
其他算法——比如 Kosaraju 用于计算强连通分量的算法——利用了类似的见解。
推荐阅读
- javascript - 用户在 Vue.js 和 Firebase 中注册后更改导航栏的状态
- javascript - ScriptingException Java 构造函数,其中一个参数未定义 (Salesforce/JavaScript)
- javascript - Javascript中的对象数组映射
- javascript - 如何启用/禁用下一个输入字段
- python - 如何将 Spark Dataframe 列动态传递到各种 python 函数的 udf 并指定各个函数的各自返回类型
- .net - 从 RSACryptoServiceProvider 解码密钥
- excel - 将 Excel 范围写入 UTF-8 文本文件
- sql - 按周根据会计日历(4-4-5 或 4-5-4 等)对表数据进行分组
- facebook - 用于在 4-5 次调用后消除 AdCreatives 错误的 Facebook API
- android - 您可以在 Jetpack Compose 中使用 TopAppBar 设置 NavController 吗?