深度优先搜索

深度优先搜索(DFS)是一种图和树的遍历算法,用于生成目标图的拓扑排序并解决相关图论问题。它通常使用堆数据结构辅助实现,并根据邻接表的不同确定性(确定或不确定)应用于不同场景,如棋盘问题和开关问题。DFS算法通过逐个深入节点直至无法继续,确保每个节点仅访问一次。
摘要由CSDN通过智能技术生成

概念

  深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。一般用堆数据结构来辅助实现DFS算法。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。

 分为两个情况

   一种是邻街表是确定的

public class Digraph {
    private int V;//节点个数
    private int E;//边的条数
    private Queue<Integer>[] adj;//临街表集合


    public Digraph(int v){
        this.V=v;
        this.E=0;
        this.adj=new Queue[v];
        for(int i=0;i<V;i++){
              adj[i]=new Queue<Integer>();
        }
    }
        public int GetV()
        {
            return V;
        }
        public int GetE(){
        return E;
        }
        public  void addAhj(int s,int e){//添加一条边
        adj[s].addNode(e);
         E++;
        }
      public Digraph revers(){
        Digraph de=new Digraph(this.V);
        for(int i=0;i< this.V;i+
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值