c - 边权重关联

标签 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 图每条边的权重的 vector 。是 igraph_vector_t 类型。

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

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

有一些igraph函数可以获取mst_tree中每条边的权重,只知道mst_treeinput_graph 和 w?

吉列尔莫。

最佳答案

在 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 的作者之一。

关于c - 边权重关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974410/

相关文章:

r - 在 igraph 中组合/合并两个图

c - 根据 argc 是偶数还是奇数,将 0 添加到 char* 数组

python - 使用 C API 创建在 python 中声明的 python 类的实例

algorithm - 使用什么算法来找到最小生成森林?

r - 带有 R : How to disable forward linking? 的 igraph/visNetwork

r - 来自数据帧的邻接矩阵

c - 动态规划SPOJ问题SCUBADIV

c - 为什么在 C 中两个 float 的相加是不正确的?

algorithm - 已知边权重范围时的 Prim 算法

c++ - 生成随机顶点