有向图邻接矩阵的核心算法
时间: 2023-12-04 15:40:43 浏览: 111
代码 有向图关联矩阵和邻接矩阵的相互转换算法代码
5星 · 资源好评率100%
有向图邻接矩阵的核心算法是深度优先搜索(DFS)和广度优先搜索(BFS)。这两种算法都是用来遍历图的,DFS是一种递归的算法,它从图的某个顶点开始遍历,沿着一条路径遍历到底,然后回溯到上一个顶点,再沿着另一条路径遍历,直到所有的顶点都被访问过为止。BFS则是从图的某个顶点开始遍历,先访问它的所有邻居节点,然后再依次访问邻居节点的邻居节点,直到所有的顶点都被访问过为止。
下面是一个使用邻接矩阵实现DFS和BFS的Python代码示例:
```python
# 邻接矩阵实现DFS
def dfs(graph, start):
visited = set() # 用集合记录已经访问过的节点
stack = [start] # 用栈来实现DFS
while stack:
vertex = stack.pop()
if vertex not in visited:
visited.add(vertex)
stack.extend(set(range(len(graph))) - visited - set([vertex]))
return visited
# 邻接矩阵实现BFS
def bfs(graph, start):
visited = set() # 用集合记录已经访问过的节点
queue = [start] # 用队列来实现BFS
while queue:
vertex = queue.pop(0)
if vertex not in visited:
visited.add(vertex)
queue.extend(set(range(len(graph))) - visited - set([vertex]))
return visited
```
阅读全文