我应该创建一个算法来检索图 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/