zoukankan      html  css  js  c++  java
  • 图的遍历 之 深搜dfs

    DFS 遍历
    深度优先搜索是一个递归过程,有回退过程。
    对一个无向连通图,在访问图中某一起始顶点u 后,由u 出发,访问它的某一邻接顶点v1;再从v1 出发,访问与v1 邻接但还没有访问过的顶点v2;然后再从v2 出发,进行类似的访问;;如此进行下去,直至到达所有邻接顶点都被访问过的某个顶点x 为止;接着,回退一步,回退到前一次刚访问过的顶点,看是否还有其它没有被访问过的邻接顶点,如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;如果没有,就再回退一步进行类似的访问。
    重复上述过程,直到该连通图中所有顶点都被访问过为止。
    深搜过程:
    深搜算法实现:
    代码如下:
     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 char maps[10][11];
     5 bool vis[1000];
     6 int q,m;
     7 void dfs(int a){
     8     vis[a]=1;
     9     if(a<q)
    10     printf("%c --> ",a+64);
    11      else printf("%c",a+64);
    12     for(int i=1;i<=q;i++)
    13     {
    14         if(maps[a][i]==1&&vis[i]==0)
    15         dfs(i);
    16     }
    17 }
    18 int main()
    19 {
    20     
    21     char a,b;
    22     cin>>q>>m;
    23     for(int i=1;i<=m;i++)
    24     {
    25         cin>>a>>b;
    26         maps[a-64][b-64]=1;
    27         maps[b-64][a-64]=1;
    28     }
    29     dfs(1);
    30 }
  • 相关阅读:
    数据库多表查询,左连接(入门)
    让弹出层始终显示在屏幕正中间
    jq中的ajax合集总结
    ajax之$.getScript()
    Jquery遮罩ShowLoading组件
    jquery中prop()方法和attr()方法的区别
    Bootstrap 响应式实用工具
    VS使用技巧
    ubuntu下postgreSQL安装配置
    基础设施即代码(Infrastructure as Code)
  • 原文地址:https://www.cnblogs.com/sssy/p/6682520.html
Copyright © 2011-2022 走看看