检索图的边

发布于 2025-01-04 05:03:13 字数 398 浏览 1 评论 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) 

我可以使用什么算法?

I should create an algorithm to retrieve the list of edges (arcs) of a graph ADT.

I can't access graph private members. I have thought I could do something similar to a DFS or BFS visit marking nodes and, in case the edge exists, adding it to a list which should be the output of the algorithm but I couldn't find a solution.

I have this methods:

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) 

What algorithm could I use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红焚 2025-01-11 05:03:13

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

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

Well, going by those methods, you can call AdjNodes(Node) on each Node of the graph. For each Node in the returned list, this will represent an edge, which can by denoted by a pair (FirstNode, SecondNode). Store these pairs in a newly created list, and that's your list of edges.

If you have an undirected graph, you will have a duplicate of every edge you find, as (FirstNode, SecondNode) and (SecondNode, FirstNode) represent the same edge.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文