rustworkx.graph_line_graph#

graph_line_graph(graph, /)#

构建一个PyGraph对象的线图。

一个图表 G 的线图 L(G) 代表了 G 的边之间的邻接关系。在 L(G) 中,对于 G 中的每条边都存在一个顶点,并且如果 G 中对应的两条边共享一个顶点,那么 L(G) 中的这两个顶点之间就会存在一条边。

Parameters:

PyGraph – 输入的 PyGraph 对象

Returns:

一个新的PyGraph对象,该对象是 graph 的线图,以及一个字典, 其中键是 graph 中边的索引,而值是在线性图中对应的节点索引。

Return type:

元组[PyGraph, 字典]

import rustworkx as rx

graph = rx.PyGraph()
node_a = graph.add_node("a")
node_b = graph.add_node("b")
node_c = graph.add_node("c")
node_d = graph.add_node("d")
edge_ab = graph.add_edge(node_a, node_b, 1)
edge_ac = graph.add_edge(node_a, node_c, 1)
edge_bc = graph.add_edge(node_b, node_c, 1)
edge_ad = graph.add_edge(node_a, node_d, 1)

out_graph, out_edge_map = rx.graph_line_graph(graph)
assert out_graph.node_indices() == [0, 1, 2, 3]
assert out_graph.edge_list() == [(3, 1), (3, 0), (1, 0), (2, 0), (2, 1)]
assert out_edge_map == {edge_ab: 0, edge_ac: 1, edge_bc: 2, edge_ad: 3}