打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python‖深度优先搜索(DFS)

深度优先搜索的基本实现:


python

# 定义图结构

graph = {

    'A': ['B', 'C'],

    'B': ['D', 'E'],

    'C': ['F'],

    'D': [],

    'E': ['F'],

    'F': []

}


# 深度优先搜索函数

def dfs(graph, node, visited):

    if node not in visited:

        print(node, end=" ")

        visited.add(node)

        for neighbour in graph[node]:

            dfs(graph, neighbour, visited)


# 使用dfs函数

visited = set() # 使用集合存储访问过的节点

dfs(graph, 'A', visited)


这段代码中,我们首先定义了一个简单的图结构graph。然后定义了一个深度优先搜索的函数dfs。这个函数接受一个图、一个节点和一个已访问节点的集合作为参数。如果节点没有被访问过,我们就将其打印出来,并将其加入到已访问节点的集合中。然后,对于这个节点的每一个邻居节点,我们递归地调用dfs函数。


在这个例子中,我们的图有6个节点('A','B','C','D','E'和'F'),其中'A'是源节点。在调用dfs函数时,我们从'A'开始遍历这个图。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PHP数据结构-图的遍历:深度优先与广度优先
一之续、A*,Dijkstra,BFS算法性能比较及A*算法的应用
算法之图搜索算法(一) | 董的博客
Python|利用BFS模板解决水壶问题
Python的Dict版图遍历
浅谈算法和数据结构(12):无向图相关算法基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服