1416:
按邻接矩阵的方法创建图,分别用深度优先和广度优先方法遍历图。
Input
输入的数据有多组
对于每组测试数据第一行为图中点的个数n(0 < n < 100)与边的数量m(m > =0)。
接下来有m行,每行两个整数a,b(0 <=a,b < n),代表这a,b这两个点之间是连通的。
对于每组测试数据第一行为图中点的个数n(0 < n < 100)与边的数量m(m > =0)。
接下来有m行,每行两个整数a,b(0 <=a,b < n),代表这a,b这两个点之间是连通的。
Output
分别输出按照深度优先搜索与广度优先搜索方法遍历的结果,每个输出结果后面都有一空行。
Sample Input
3 0 5 3 0 1 0 4 1 3
Sample Output
0 1 2 0 1 2 0 1 3 4 2 0 1 4 3 2
这道题实际上就是图的遍历。
但是要注意是从0开始的。
#include<stdio.h>
#include<string.h>
int n,sum,book[101],e[101][101];
void dfs(int cur){
int i;
printf("%d ",cur);
sum++;
if(sum==n-1) return;
for(i=0;i<n;i++){
if(book[i]==0&&e[cur][i]==1){