logo

Python 图系列之基于邻接矩阵实现广度、深度优先路径搜索算法

作者:carzy2024.02.18 12:29浏览量:4

简介:介绍如何使用Python和邻接矩阵实现广度优先搜索(BFS)和深度优先搜索(DFS)算法,以及它们在图搜索中的实际应用。

在计算机科学中,图是一种数据结构,用于表示对象及其之间的关系。邻接矩阵是表示图的一种常用方法,其中矩阵的行和列表示图中的节点,矩阵中的值表示节点之间的关系。广度优先搜索(BFS)和深度优先搜索(DFS)是两种常用的图搜索算法,用于在图中查找路径或遍历图。
一、广度优先搜索(BFS)
广度优先搜索是一种按照层次顺序搜索图的算法。它从图的根节点开始,探索所有相邻节点,然后继续探索下一层的节点。BFS使用队列数据结构来实现。下面是一个基于邻接矩阵实现BFS的Python代码示例:

  1. # 定义邻接矩阵
  2. graph = [[0, 1, 1, 0, 0],
  3. [1, 0, 0, 1, 0],
  4. [1, 0, 0, 1, 1],
  5. [0, 1, 1, 0, 1],
  6. [0, 0, 1, 1, 0]]
  7. # BFS函数
  8. def bfs(graph, start):
  9. visited = [False] * len(graph)
  10. queue = [start]
  11. visited[start] = True
  12. while queue:
  13. vertex = queue.pop(0)
  14. print(vertex, end=' ')
  15. for i in range(len(graph[vertex])):
  16. if graph[vertex][i] == 1 and not visited[i]:
  17. visited[i] = True
  18. queue.append(i)

相关文章推荐

发表评论