数据结构实验之图论二:图的基于邻接矩阵的深度遍历

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

Time Limit: 1000MS
Memory Limit: 65536KB
Submit
Statistic

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的遍历结果。

Example Input

1
4 4
0 1
0 2
0 3
2 3

Example Output

0 1 2 3

Hint

Author

#include<iostream>

#include<cstring>

using namespace std;

int map[222][222],vis[222],f[222];

int k,m,p;

void dfs(int t)

{

    int i;

    vis[t]=1;

    f[p++]=t;

    for(i=0;i<k;i++)

    {

        if(map[t][i]==1&&vis[i]==0)

        {

            dfs(i);

        }

    }

}

int main()

{

    int T,i,u,v,t;

    cin>>T;

    while(T–)

    {

        cin>>k>>m;

        memset(map,0,sizeof(map));

        memset(vis,0,sizeof(vis));

        for(i=0;i<m;i++)

        {

            cin>>u>>v;

            map[u][v]=1;

            map[v][u]=1;

            if(i==0)

                t=u;

        }

        p=0;

        dfs(t);

        for(i=0;i<k;i++)

        {

            if(i==k-1)

                cout<<f[i]<<endl;

            else

                cout<<f[i]<<” “;

        }

    }

}

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/mu4song/article/details/78623513
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞