正在检索图形的边

Retrieving edges of a graph

本文关键字:图形 检索      更新时间:2023-10-16

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

我可以使用什么算法?

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

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