检查有向图是否连接强烈的程序
我有一个defaultdict:
defaultdict(<class 'dict'>, {'SanFrancisco': {'Houston': '1000'},
'LA': {'Ames': '300', 'SanFrancisco': True, 'Detroit': '200'},
'NYC': {'LA': '3000'}, 'Austin': {'Houston': '500'}})
# myDefaultDict = collections.defaultdict(dict)
包含所有不同字符串的集合:
{'Austin', 'LA', 'NYC', 'Ames', 'Detroit', 'Houston', 'SanFrancisco'}
# myNewSet
现在这是我的代码:
for i in myNewSet:
break
graph_DFT(i)
def graph_DFT(start):
functionSet = set()
myStack = []
myStack.append(start)
if not myStack:
node = myStack.pop()
# for neighbor in node's adjacent node
# if neighbor not visited - i.e. not in functionSet
# functionSet.add(neighbor)
# myStack.append(neighbor)
注意:我的defaultdict可以包含带有可选边权重的有向字符串。
那么如何检查相邻节点?说实话,我不是 100%确定我的示例中的相邻节点是什么。嵌套让我感到困惑。谢谢你的帮助!
答案 0 :(得分:1)
如果不放弃太多,我会解释一下。
你可以像这样迭代dict的键:
for k in mydict:
...
在你的例子中:
for neighbor in G[node]: # Assumes your defaultdict is `G`.
...
由于键是相邻的节点,因此您可以对它们进行操作。