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
    ****************************************************/
  • 相关阅读:
    AppDelegate减负之常用三方封装
    AppDelegate减负之常用三方封装
    基于AFN封装的带缓存的网络请求
    iOS-创建自己的日志系统
    UIImage 图片处理:截图,缩放,设定大小,存储
    /bin/sh^M: bad interpreter:解决办法
    mac上获取手机的uuid
    iOS PureLayout使用
    iOS集成友盟推送
    完全理解Python的 '==' 和 'is'
  • 原文地址:https://www.cnblogs.com/jkxsz2333/p/9504621.html
Copyright © 2011-2022 走看看