深度优先搜索(DFS)和广度优先搜索(BFS) 无向图

本文探讨了深度优先搜索(DFS)和广度优先搜索(BFS)在无向图中的应用。DFS利用栈进行递归搜索,遵循后进先出(LIFO)原则,而BFS则借助队列,按照起点距离顺序遍历,采用先进先出(FIFO)策略。分别阐述了两种方法在寻找路径时的特点。
摘要由CSDN通过智能技术生成


在程序中,在搜索一幅图时遇到有多边需要遍历的情况的时候,我们会选择其中一条并将其他通道留到以后继续搜索。

  • 在深度优先搜索中,我们用了一个可以下压的栈,来支持递归搜索方法。使用LIFO(后进先出)的规则来描述压栈和走迷宫时先探索相邻的通道类似。从有待搜索的通道中选择最晚遇到的那条。
  • 在广度优先搜索中,我们希望按照起点的距离的顺序遍历所有顶点,使用FIFO(先进先出)队列代替栈即可。我们将从有待搜索的通道中选择最早遇到的那条。

DFS寻找路径

public class DeapthFisrtPaths
{
   	private boolean[] marked;	
	private int[] edgeTo;
    private final int s;
 
 
 public DeapthFirstPaths(Graph G, int s)
 {
   
     marked = new  boolean[G.V()];
     edgeTo = new int{
   G.V()]
     this.s = s;
     dfs(G,s);
 }
 
 private void 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值