您的位置 首页 知识

原神免费获得的角色有哪些 原神有哪些免费

原神免费获得的角色有哪些 原神有哪些免费

下面内容是使用Python语言实现图的两种常见遍历算法:深度优先搜索(DFS)和广度优先搜索(BFS)的示例代码,这里使用邻接表来表示图。

一、深度优先搜索(DFS)

  1. 开头来说定义图的数据结构(使用邻接表)

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

  1. 调用深度优先搜索函数

dfs(graph, 'A')

二、广度优先搜索(BFS)

  1. 同样使用上面定义的图结构,下面内容是广度优先搜索函数

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)

  1. 调用广度优先搜索函数

bfs(graph, 'A')

在上述代码中:

  • 对于深度优先搜索(DFS):
    • 它从起始节点开始,递归地访问未被访问过的邻居节点。
    • 开头来说将起始节点标记为已访问,接着对其每个未访问的邻居节点重复这个经过。
  • 对于广度优先搜索(BFS):
    • 使用队列来存储待访问的节点。
    • 开头来说将起始节点加入队列并标记为已访问,接着取出队列头部的节点,访问其未被访问的邻居节点,并将这些邻居节点加入队列,重复这个经过直到队列为空。