有向图邻接矩阵的核心算法
时间: 2023-12-04 09:40:43 浏览: 116
编写算法,由依次输入的顶点数目、弧的数目、各顶点信息和各条弧信息建立有向图的邻接表。
4星 · 用户满意度95%
有向图邻接矩阵的核心算法是深度优先搜索(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
```
阅读全文