我有以下用于深度优先搜索的代码:
def dfs(graph, vertex):
visited = set()
stack = [vertex]
while stack:
vertex = stack.pop()
if vertex not in visited:
visited.add(vertex)
stack.extend(graph[vertex])
return visited
def main():
test_graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
print(dfs(test_graph, 'A'))
if __name__ == '__main__':
main()
每次执行时,我都会得到不同的输出。
是否可以进行任何更改,以使输出始终以vertex
的值开头(在这种情况下为[[A)?
set
返回输出。一组没有排序,在不同的运行中可能会得到不同的结果。您可以通过多种方式解决此问题-一种方法是从集合中创建列表并将其排序,然后再从dfs
函数返回。