7-21 DFS

Traverse the following graph by DFS. You should create the graph by matrix.

dfs.png

输入格式:

1 line.
A number which means the start vertex of traverse.

输出格式:

1 line.
A sequence seperated by comma which means the vertexes traversed by DFS.

输入样例:

在这里给出一组输入。例如:

1

输出样例:

在这里给出相应的输出。例如:

1,2,4,8,5,6,3,7,

C语言代码:

#include<stdio.h>
#include<stdlib.h>
#define VerticeNum 8

int flag[VerticeNum];

void DFS(int start, int Graph[VerticeNum][VerticeNum]){
    int i;
    for(i=0;i<VerticeNum;i++){
        if((!flag[i])&&Graph[start][i]){
            flag[i]=1;
            printf("%d,",i+1);
            DFS(i,Graph);
        }
    }
}

main(){
    int Graph[VerticeNum][VerticeNum];
    int i,j;
    for(i=0;i<VerticeNum;i++){
        for(j=0;j<VerticeNum;j++){
            Graph[i][j]=0;
        }
        flag[i]=0;
    }
    Graph[0][1]=Graph[1][0]=1;
    Graph[0][2]=Graph[2][0]=1;
    Graph[1][3]=Graph[3][1]=1;
    Graph[1][4]=Graph[4][1]=1;
    Graph[3][7]=Graph[7][3]=1;
    Graph[4][7]=Graph[7][4]=1;
    Graph[2][5]=Graph[5][2]=1;
    Graph[6][2]=Graph[2][6]=1;
    Graph[5][7]=Graph[7][5]=1;
    Graph[6][7]=Graph[7][6]=1;
    int start;
    scanf("%d",&start);
    printf("%d,",start);
    flag[start-1]=1;
    DFS(start-1,Graph);
    return 0;
}

 

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值