深度优先搜索(DFS)是一种用于遍历或搜索图或树的算法。以下是深度优先搜索的模板:
visited = set()
def dfs(node):
# 如果节点已经访问过,则直接返回
if node in visited:
return
# 标记节点为已访问
visited.add(node)
# 对当前节点的所有未访问过的邻居节点进行递归调用
for neighbor in node.neighbors:
if neighbor not in visited:
dfs(neighbor)
在这个模板中,我们使用一个集合来记录已经访问过的节点。首先,我们检查当前节点是否已经访问过,如果是,则直接返回。然后,将当前节点标记为已访问,并对其所有未访问过的邻居节点进行递归调用。这样,深度优先搜索可以递归地遍历整个图或树。
注意,这个模板中没有明确的终止条件,因为在实际应用中,终止条件的具体形式可能有所不同,例如找到目标节点或达到某个特定状态等。
你可以根据具体问题的要求对深度优先搜索模板进行适当的修改。