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

标签 c++ graph lemon-graph-library

图表示例:

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/

相关文章:

python - Networkx:通过波遍历图

python - 在 Python 中绘制嵌套列表的微分图

c++ - 奇怪的多重定义错误

c++ - 可插入私有(private) DICOM 标签的数据是否有任何限制?

javascript - 分组图表栏上的 d3 栏标签

c++ - 如何获取Lemon Graph Library中索引为n的节点?

c++ - 如何在柠檬中找到节点的邻居

c++ - 有没有办法通过 LEMON Graph 库中的 Map 值获取节点?

c++ - 如何修复 C++ 中的错误 "vector iterators in range are from different containers"?

c++ - 如何使用 visual c++ 中的 strncpy_s 函数?