边缘 - 权重关联

时间:2011-08-07 17:21:07

标签: c minimum-spanning-tree igraph

我在C中使用igraph库。

我需要使用以下调用计算图表的最小生成树:

igraph_minimum_spanning_tree_prim( &input_graph, &mst_tree, &w); 

其中:

  • input_graph: 要处理的图表。是 igraph_t 类型。
  • mst_tree: 该函数返回的mst树。是 igraph_t 类型。
  • w: 带有input_graph图形每条边的权重的向量。是 igraph_vector_t 类型。

如igraph库中所要求的,边和权重之间的关联由它们的索引给出,也就是说, input_graph 中的第一个边具有权重通过 w 向量的第一个元素,第二个边的权重由 w 的第二个元素给出矢量,等等。

由于 mst_tree 的边缘是 input_graph 边缘的子集(因此, input_graph mst_tree 中的边是不同的),不可能通过关联获得 mst_tree 的边缘权重他们的指数。

有一些igraph功能可以在 mst_tree 中获得每条边的权重,只知道 mst_tree input_graph 和w?

吉列尔莫。

1 个答案:

答案 0 :(得分:1)

在igraph 0.5.4中,没有这样的功能,对不起:(在igraph 0.6中,最小生成树API会有所改变,所以会有另外一个具有以下签名的函数:

int igraph_minimum_spanning_tree(const igraph_t* graph, igraph_vector_t* res, const igraph_vector_t* weights);

其中res将包含构成生成树的边的索引。 igraph 0.6尚未发布,但它非常稳定,所以您可能想尝试升级到igraph 0.6(如果您不介意在这里和那里进行一些API更改)。

免责声明:我是igraph的作者之一。