rustworkx.union#

union(first, second, merge_nodes=False, merge_edges=False)[source]#

通过合并两个输入图对象来形成新图

这个函数中的算法分为三个阶段运行:

1. 将所有节点从 second 添加到 first 中。操作时间复杂度为 \(\mathcal{O}(n_2)\),其中 \(n_2\)second 中的节点数量。 2. 从 second 合并节点到 first 的前提条件是:

  • merge_nodes 设置为 True 时,时间复杂度为 \(\mathcal{O}(n_1 n_2)\), 其中 \(n_1\) 表示 first 中节点的数量,\(n_2\) 表示 second 中节点的数量

  • secondfirst 中的相应节点共享相同的权重/数据载荷。

  1. second中的所有边添加到first中。如果merge_edges参数为True,并且secondfirst中的相应边共享相同的权重/数据负载,它们将被合并在一起。

Parameters:
  • first – 第一个图对象

  • second - 第二个图对象

  • merge_nodes (bool) – 如果设置为 True,当权重相等时,secondfirst 之间的节点将被合并。默认值:False

  • merge_edges (bool) – 如果设置为 True,会在 secondfirst 之间合并权重相等的边。默认值:False

Returns:

一个新的图对象,是secondfirst的并集。值得注意的是,权重/数据载荷对象是通过引用从 firstsecond传递给这个新对象的。

Return type:

PyGraphPyDiGraph