zoukankan      html  css  js  c++  java
  • <算法基础>图的三种遍历方法————DFS,BFS,Topological sort

     

    1.BFS(Breadth First Search)

      具体实现的时候用栈来实现更简单。从start point开始,一圈圈向外。

      对于例图的访问顺序是——s,a,c,d,e,b,g,f

    2.DFS(Depth First Search)

    DFS(s){
    首先访问定点s;
    if(s尚有未被访问的邻居)
    {
    任取其一u,递归执行DFS(u);
    }
    else{return;}

    }

      对于例图的访问顺序是——s,a,e,f,g,b,c,d

      

    3.Topological Sort

    仅仅用于有向无环图。

    从AOV网中选择一个入度为0的顶点输出,然后删除此顶点,并删除以此顶点为尾的弧,重复操作指导输出全部顶点或者AOV网中不存在入度为0的顶点为止

    对于上面这个有向图,只有出度没有入度的节点是a,我们以a为起点。
    开始!
    a入队列。                 a
    a弹出,c,e,s压入。————ces为a的出度 s,e,c
    c弹出,      ————c没有出度     s,e
    e弹出,f,k压入。 ————fk为e的出度    k,f,s
    s弹出,d压入。 ————d为s的出度     d,k,f
    f弹出,      ————f没有出度     d,k
    k弹出,g压入。   ————g为k的出度    g,d
    d弹出,b压入。   ————b为d的出度    b,g
    g弹出,      ————g没有出度     b
    b弹出,      ————b没有出度     NULL
    结束!

    节点弹出队列的先后顺序就是遍历访问的先后顺序,即
    ——>a,c,e,s,f,k,d,g,b

  • 相关阅读:
    Dynamics 365 多租户?多实例?
    接口接收gzip压缩数据并解压
    系统检测到在一个调用中尝试使用指针参数时的无效指针地址 问题
    PBI DAX 中GroupBy
    将sql 查询结果导出到excel
    自动生成数据库表分区脚本
    快速生成导入亿级测试数据到sqlserver
    powershell 版本问题
    运行powershell 脚本 在此系统上禁止运行脚本
    python网站收集
  • 原文地址:https://www.cnblogs.com/dynmi/p/12074241.html
Copyright © 2011-2022 走看看