data-structures - 我们可以使用 Union-Find 数据结构检测有向图中的循环吗?

标签 data-structures graph graph-algorithm union-find cycle-detection

我知道可以使用 DFS 和 BFS 检测直接图中的循环。我想知道我们是否可以使用 检测有向图中的循环Union-Find 或不?

  • 如果是,那么如何?和
  • 如果我们不能,那为什么?
  • 最佳答案

    不,我们不能使用 union-find 来检测有向图中的循环。这是因为无法使用不相交集(执行联合查找的数据结构)来表示有向图。

    当我们说“a union b”时,我们无法确定边的方向

  • a 要去 b 吗? (或)
  • b 要去 a 吗?

  • 但是,在无序图的情况下,每个连接的组件等效于一个集合。所以 union-find 可以用来检测循环。每当您尝试对属于同一连接组件的两个顶点执行并集时,我们可以说存在循环。

    关于data-structures - 我们可以使用 Union-Find 数据结构检测有向图中的循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61167751/

    相关文章:

    php - 如何在 PHP 中实现 3 维二分匹配算法

    animation - 浮图动画可能吗?

    algorithm - 如何在退化树中找到从特定顶点开始的所有等价路径?

    c# - 如何在 C# 中编写 bresenham 算法?

    c - 为什么我的 Infix to postfix 程序给出了错误的输出(C,Stacks)

    Python OO程序结构规划

    c# - Hashset 与 IQueryable

    c++ - 在 C++ 中存储大量短暂的游戏对象

    algorithm - 一个有 n 个顶点的图 - 如何打印所有可能的图组合

    algorithm - 哪种技术将用于在计算机程序中表示一个非常大的无向图以进行操作?