0

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

我可以使用什么算法?

4

1 回答 1

1

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

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

于 2012-02-09T15:28:55.407 回答