c++ - 检索图的边

标签 c++ algorithm graph traversal edges

我应该创建一个算法来检索图 ADT 的边(弧)列表。

我无法访问图形私有(private)成员。我想我可以做一些类似于 DFS 或 BFS 访问标记节点的事情,如果边缘存在,将它添加到一个列表中,该列表应该是算法的输出,但我找不到解决方案。

我有这个方法:

bool IsEmpty()
Node InsertNode() 
InsertArc(Node, Node) 
DeleteNode(Node) 
DeleteArc(Node, Node) 
List AdjNodes(Node) 
bool ExistsNode(Node) 
bool ExistsArc(Node, Node) 
Label ReadNode(Node) 
WriteNode(Node, Label) 

我可以使用什么算法?

最佳答案

好吧,通过这些方法,您可以在图中的每个节点上调用 AdjNodes(Node)。对于返回列表中的每个节点,这将代表一条边,可以用一对 (FirstNode, SecondNode) 表示。将这些对存储在新创建的列表中,这就是您的边列表。

如果你有一个无向图,你会得到你找到的每条边的拷贝,因为 (FirstNode, SecondNode) 和 (SecondNode, FirstNode) 代表相同的边。

关于c++ - 检索图的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9213234/

相关文章:

c++ - 将 map 写入文件 C++

c++ - 在 Linux 上从 coredump 中发现崩溃

c++ - 尝试将 SDL 2 与 Visual Studio c++ 一起使用

c# - 如何解决这个奇怪的多循环场景(Java 或 C#)?

c++ - 2 个数的公因数是多少?

graph - Graphviz 中的隐藏边

algorithm - 给定最大匹配找到二分图的最小顶点覆盖

c++ - C++ Opengl 圆函数是如何工作的

java - 为什么我的方法打印一个空列表?

java - 图java的深度优先搜索