原神免费获得的角色有哪些 原神有哪些免费
下面内容是使用Python语言实现图的两种常见遍历算法:深度优先搜索(DFS)和广度优先搜索(BFS)的示例代码,这里使用邻接表来表示图。
一、深度优先搜索(DFS)
- 开头来说定义图的数据结构(使用邻接表)
graph =
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': [],
'F': []
}
深度优先搜索函数
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start)
for neighbor in graph[start]:
if neighbor not in visited:
dfs(graph, neighbor, visited)
return visited
- 调用深度优先搜索函数
dfs(graph, 'A')
二、广度优先搜索(BFS)
- 同样使用上面定义的图结构,下面内容是广度优先搜索函数
from collections import deque
def bfs(graph, start):
visited = set()
queue = deque([start])
visited.add(start)
while queue:
vertex = queue.popleft()
print(vertex)
for neighbor in graph[vertex]:
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
- 调用广度优先搜索函数
bfs(graph, 'A')
在上述代码中:
- 对于深度优先搜索(DFS):
- 它从起始节点开始,递归地访问未被访问过的邻居节点。
- 开头来说将起始节点标记为已访问,接着对其每个未访问的邻居节点重复这个经过。
- 对于广度优先搜索(BFS):
- 使用队列来存储待访问的节点。
- 开头来说将起始节点加入队列并标记为已访问,接着取出队列头部的节点,访问其未被访问的邻居节点,并将这些邻居节点加入队列,重复这个经过直到队列为空。