我需要按照深度优先搜索期间访问节点的顺序来标记树的节点。我必须在 Python 中实现它。我正在尝试使用networkx lib,但仍然不知道该怎么做。你们对如何使用它有任何想法吗?还是我应该尝试自己实现它?
干杯,全科医生
我需要按照深度优先搜索期间访问节点的顺序来标记树的节点。我必须在 Python 中实现它。我正在尝试使用networkx lib,但仍然不知道该怎么做。你们对如何使用它有任何想法吗?还是我应该尝试自己实现它?
干杯,全科医生
如果库中存在众所周知的算法,请尝试不要实现它们。那里有一个基本遍历算法文档的链接。
http://networkx.github.io/documentation/latest/reference/algorithms.traversal.html
玩得开心 :)
好吧,如果你创建一个新图表,
>>> import networkx as nx
>>> g = nx.DiGraph()
你添加一些边缘,
>>> g.add_edges_from([(0,1),(1,2),(0,3),(3,4),(3,5),(5,6)]) # etc
您可以使用dfs_edges()
来遍历和查看遍历的顺序。
>>> nodes = nx.dfs_edges(random_g, node_) # This creates an edges iterator
>>> nodes.next()
(0, 1)
>>> nodes.next()
(1, 2)
>>> nodes.next()
(0, 3)
>>>
如果你愿意,你可以从调用中获取输出.next()
,以确定正在访问的节点。
例如,(不包括第一个节点,0),
>>> for n in nodes:
... print n[1]
...
1
2
3
4
5
6
>>>