当前位置:网站首页 > 技术博客 > 正文

深度优先遍历经典例题

有向

深度优先遍历

(Depth First Search, DFS)是一种用于遍历

算法

。它从

中的一个顶点开始,沿着一条路径尽可能深地访问

中的顶点,直到无法继续前进为止,然后回溯到前一个顶点,继续探索其他路径。以下是一个用Python实现有向

深度优先遍历

的示例代码:

 # 定义有向   class DirectedGraph: def __init__(self): self.graph = {}  # 添加边 def add_edge(self, start, end): if start in self.graph: self.graph[start].append(end) else: self.graph[start] = [end]  # 深度优先遍历 def dfs(self, start): visited = set() # 记录已访问的节点  def dfs_helper(node): visited.add(node) print(node, end=" ") # 输出节点值  if node in self.graph: for neighbor in self.graph[node]: if neighbor not in visited: dfs_helper(neighbor)  dfs_helper(start)  # 创建有向  对象 graph = DirectedGraph()  # 添加边 graph.add_edge('A', 'B') graph.add_edge('A', 'C') graph.add_edge('B', 'D') graph.add_edge('B', 'E') graph.add_edge('C', 'F')  # 深度优先遍历 print(" 深度优先遍历 结果:") graph.dfs('A') 

运行以上代码,输出结果为:A B D E C F

版权声明


相关文章:

  • c语言中push函数pop函数2025-04-05 10:01:04
  • ftp下载文件命令2025-04-05 10:01:04
  • java课程设计案例精编2025-04-05 10:01:04
  • pytorch版本2025-04-05 10:01:04
  • 依赖包括什么2025-04-05 10:01:04
  • office离线版2025-04-05 10:01:04
  • 二叉树后序遍历怎么看2025-04-05 10:01:04
  • java构造器和构造函数2025-04-05 10:01:04
  • 2019坏账准备例题2025-04-05 10:01:04
  • c++拷贝构造函数什么时候调用2025-04-05 10:01:04