zoukankan      html  css  js  c++  java
  • SDUT 2107 数据结构实验之图论二:图的深度遍历

     

    数据结构实验之图论二:图的深度遍历

    Time Limit: 1000 ms Memory Limit: 65536 KiB

    Problem Description

    请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。

    Input

    输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。

    Output

    输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示DFS的遍历结果。

    Sample Input

    1
    4 4
    0 1
    0 2
    0 3
    2 3

    Sample Output

    0 1 2 3

    提示:此题用到了DFS(深度优先搜索),而图的深度优先搜索也就相当于树的先序遍历,即先遍历到底,再回溯遍历,原理很简单,靠个人理解。

    代码实现如下(g++):
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int a[110][110],vis[110];//a表示图,vis用来判断是否被遍历过
    int i,m,k;
    
    void DFS(int i)//递归求解
    {
        int j;
        for(j=0;j<k;j++)
        {
            if(!vis[j]&&a[i][j]==1)//如果从0到k找到一个点与i连接,并且没被遍历过
            {
                printf(" %d",j);//输出该点
                vis[j]=1;//标记上
                DFS(j);//递归到j开始
            }
        }
    }
    
    int main()
    {
        int n,z,u,v;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%d %d",&k,&m);
            memset(a,0,sizeof(a));
            memset(vis,0,sizeof(vis));//重置数组
            for(i=0;i<m;i++)
            {
                scanf("%d %d",&u,&v);
                a[u][v]=1;
                a[v][u]=1;
                if(i==0)
                {z=u;}
            }
            cout<<z;
            vis[z]=1;
            DFS(z);
            cout<<endl;
        }
        return 0;
    }
    
    
    /***************************************************
    Result: Accepted
    Take time: 0ms
    Take Memory: 284KB
    ****************************************************/
  • 相关阅读:
    zbb20181207 springboot @ConfigurationProperties使用
    zbb20181206 logback,lombok 默认日志logback配置解析
    Spring Boot (8) 全局异常处理
    Spring Boot (7) JdbcTemplate访问数据库
    Spring Boot (6) Spring Data JPA
    Spring Boot (4) 静态页面和Thymeleaf模板
    Spring Boot (3) 热部署devtools
    Spring Boot (2) Restful风格接口
    Spring Boot (1) 构建第一个Spring Boot工程
    idea使用maven搭建ssm框架实现登陆商品增删改查
  • 原文地址:https://www.cnblogs.com/jkxsz2333/p/9504621.html
Copyright © 2011-2022 走看看