data-structures - DAG是否有支持有效编辑的数据结构?

标签 data-structures graph cycle directed-acyclic-graphs

我正在寻找一种数据结构,该数据结构将存储任何DAG,但可以有效地(即,在边/顶点的数量上是次线性的)检测是否添加边会创建一个循环(从而防止破坏非循环不变式) )。有人知道这样的事吗?

谢谢!

最佳答案

您可以维护有关图的 transitive closure 的数据结构。然后检查是否增加边沿会导致循环,请在固定时间内完成;如果要添加边(i,j),请检查是否存在从j到i的路径。但是,一般而言,更新数据结构的成本可能更高(请参见La Poutré and van Leeuwen)。

关于data-structures - DAG是否有支持有效编辑的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7893520/

相关文章:

ios - 如何使用核心图为图例设置不同的文本颜色

c++ - 在 boost 图形库中绑定(bind)到 std::vector 的外部属性映射

java - 另一个 "Can only iterate over an array or an instance of java.lang.Iterable"问题

algorithm - 我怎样才能找到最小化边数的方法?

scala - 为什么 Akka 流循环没有在此图中结束?

perl - Perl-while(<>)文件处理

data-structures - 功能数据结构中的简单 "undo"

c - 如何从符号表中获取全局变量定义?

释放后检查结构体是否释放

c - 如何使用memcpy将一个字符串复制到结构中的另一个字符串(char **)?