zoukankan      html  css  js  c++  java
  • 图的深度遍历

    题目描述

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

    输入

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

    输出

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

    示例输入

    1
    4 4
    0 1
    0 2
    0 3
    2 3

    示例输出

    0 1 2 3
     1 #include <stdio.h>
     2 #include <string.h>
     3 int p[101][101];//标记边
     4 int o[101];//标记点
     5 int num[101];//存遍历完的点
     6 int z;
     7 //dfs算法
     8 void dfs(int k,int v)
     9 {
    10     int j;
    11     o[v] = 1;
    12     num[z++] = v;
    13     for(j = 0;j <= k-1;j ++)
    14     {
    15         if(p[v][j] == 1 && o[j] == 0)
    16         {
    17             dfs(k,j);
    18         }
    19     }
    20 }
    21 
    22 int main()
    23 {
    24     int n,k,m,u,v,i,j,t;
    25     scanf("%d",&n);
    26     while(n--)
    27     {
    28         memset(p,0,sizeof(p));
    29         memset(o,0,sizeof(o));
    30         memset(num,0,sizeof(num));
    31         scanf("%d%d",&k,&m);
    32         z = 0;
    33         t = 0;
    34         for(i=1;i<=m;i++)
    35         {
    36             scanf("%d%d",&u,&v);
    37             p[v][u]=1;
    38             p[u][v]=1;
    39         }
    40         for(i=0;i<=k-1;i++)
    41         {
    42             for(j=0;j<=k-1;j++)
    43             {
    44                 if(p[i][j]==1)
    45                 {
    46                     dfs(k,i);
    47                     t = 1;
    48                     break;
    49                 }
    50             }
    51             if(t) break;
    52         }
    53         for(i=0;i<=z-1;i++)
    54         {
    55             if(i!=z-1)
    56             printf("%d ",num[i]);
    57             else
    58             printf("%d\n",num[i]);
    59         }
    60     }
    61 }
    View Code
  • 相关阅读:
    中文词频统计及词云制作
    字符串操作练习:星座、凯撒密码、99乘法表、词频统计预处理
    python第二节课
    Python第一节课
    了解大数据
    pcb结构定义
    一个完整的大作业
    中文词频统计及词云制作
    字符串操作练习:星座、凯撒密码、99乘法表、词频统计预处理
    Python输入输出练习
  • 原文地址:https://www.cnblogs.com/sdutmyj/p/3225265.html
Copyright © 2011-2022 走看看