Networkx dfs_edges 未按教授的预期运行

Networkx dfs_edges not functioning as intended by professor

dfs_edges(G, 4) 的预期输出是正确的,但它在一个边的位置上偏离了,我不明白为什么

输入:

G = nx.Graph()
edges = [(1,2),(1,3),(1,5),(2,5),(2,6),(3,4),(3,5),(4,5),(4,6),(4,7),(5,6)]
root = 4
G.add_edges_from(edges)
printGraph(G)

预期输出:

DFS traversal from from 4 = [(4, 3), (4, 7), (3, 1), (1, 2), (2, 5), (5, 6)]

我的代码:

import networkx as nx
def printGraph(G):
    print("DFS traversal from from 4 =", list(nx.dfs_edges(G,4)))

代码结果:

DFS traversal from from 4 = [(4, 3), (3, 1), (1, 2), (2, 5), (5, 6), (4, 7)]

问题是 (4, 7) 边的位置,虽然我可以手动将它放在应该的位置,但这意味着它不适用于隐藏文本的情况 (Moodle)

这是你的图表:

在从节点 4 开始的 depth-first 搜索中,我希望首先或最后访问节点 7,而不是在节点 3 之后访问。您得到的输出对 dfs_edges.预期的输出是不正确的。

得到的答案和预期的一样正确,原来他不想要dfs_edges,他想要的是dfs树的边,所以这个有效:

print("DFS traversal from from 4 =", nx.dfs_tree(G, root)).edges())