检索图形的边缘

时间:2012-02-09 15:01:42

标签: c++ algorithm graph traversal edges

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

我无法访问图形私有成员。我以为我可以做一些类似于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) 

我可以使用什么算法?

1 个答案:

答案 0 :(得分:1)

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

如果你有一个无向图,你将找到你找到的每个边的副本,因为(FirstNode,SecondNode)和(SecondNode,FirstNode)代表相同的边。