我看到的深度优先搜索的伪代码让我非常困惑,因为它与我的具体问题没有关系。我正在尝试确定“有向图”是否强连通。
如果我有一个包含两个字符串(第一个表示源,第二个表示目标)和一个可选数字表示边权重的字典:
我看到我可以将“Austin”作为起点传递。但是,我如何将“Austin”设置为已访问,并且如何查看哪些节点与“Austin”相邻?
此外,我如何使用该算法返回图是否强连通的true或false?
我只是很难从伪代码转换成代码。感谢任何帮助。
如果我有一个包含两个字符串(第一个表示源,第二个表示目标)和一个可选数字表示边权重的字典:
{'Austin': {'Houston': 300}, 'SanFrancisco': {'Albany': 1000}, 'NewYorkCity': { 'SanDiego': True }}
如何实现DFS的某些元素?我知道可以从顶点“Austin”开始,并且“Houston”是另一个顶点。但我不知道这在Python代码中如何工作。
我有以下伪代码:
function graph_DFS(start):
# Input: start vertex
S = new Stack()
# Mark start as visited
S.push(start)
while S is not empty:
node = S.pop()
# Do something? (e.g. print)
for neighbor in node’s adjacent nodes:
if neighbor not visited:
# Mark neighbor as visited
S.push(neighbor)
我看到我可以将“Austin”作为起点传递。但是,我如何将“Austin”设置为已访问,并且如何查看哪些节点与“Austin”相邻?
此外,我如何使用该算法返回图是否强连通的true或false?
我只是很难从伪代码转换成代码。感谢任何帮助。