gpt4 book ai didi

c++ - 使用 Lemon Graph Library 检查无向图上是否存在边

转载 作者:行者123 更新时间:2023-11-28 07:22:20 31 4
gpt4 key购买 nike

图表示例:

ListDigraph G;

ListGraph::Node A = G.addNode();
ListGraph::Node B = G.addNode();
ListGraph::Node C = G.addNode();
ListGraph::Node D = G.addNode();

ListGraph::Edge AB = G.addEdge(A,B);
ListGraph::Edge AC = G.addEdge(A,C);
ListGraph::Edge AD = G.addEdge(A,D);
ListGraph::Edge BC = G.addEdge(B,C);
ListGraph::Edge BD = G.addEdge(B,C);
ListGraph::Edge CD = G.addEdge(C,D);

我需要一个以 2 个节点(A 和 C)为例并返回连接这 2 个节点的边的 ID(如果存在)的方法。

最佳答案

您可以将节点存储在一维数组中,将边存储在二维数组中。也就是说,不是让节点 A、B、C 和 D 具有包含 Nodes[0]Nodes[3] 的数组。然后边 AB 可以存储为 Edge[0][1]。您只是将边存储为邻接矩阵。然后您可以使用以下调用找到边的 ID:G.id(Edge[0][1])。如果要验证这两个节点之间是否存在边,则只需检查边 ID 的绝对值是否小于边的总数:

if (abs(G.id(Edge[0][1])) < numberOfEdges)
return true;
else
return false;

关于c++ - 使用 Lemon Graph Library 检查无向图上是否存在边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19232208/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com