微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C程序:实施深度优先搜索DFS:打印整个访问顺序以及不同组的断开连接的组件

如何解决C程序:实施深度优先搜索DFS:打印整个访问顺序以及不同组的断开连接的组件

这是我的代码

我正在使用C程序来实现深度优先搜索(DFS) 输入将是一个矩阵,输出将是

  1. 打印整个访问顺序
  2. 打印不同组的断开连接的组件

我的代码能够打印第一组连接的顶点,但不能打印其余的顶点。 此代码也无法打印整个访问顺序。 感谢提供的任何帮助。

#include<stdio.h>
#define maxV 10

int count;
int G[maxV][maxV];
int visit[maxV];
int n; //number of vertices
int s; //starting point

void dfs(int v){
    count=count+1;
    int i;
    visit[v]=count;
    printf("%d->",v);

    for (i=1;i<n+1;i++){
        if (G[v][i]!=0 && visit[i]==0){
            dfs(i);
        }
    }
}

void main(){
    int i;
    int j;
    int count=0;


    printf("Enter number of vertices: ");
    scanf("%d",&n);
    for (i=1;i<n+1;i++)
    {
        visit[i]=0;
    }

    printf("\nEnter adjecency matrix of the graph:");
    for(i=1;i<n+1;i++)
        for(j=1;j<n+1;j++)
            scanf("%d",&G[i][j]);

    printf("Enter starting vertix:");
    scanf("%d",&s);
    dfs(s);

    for (i=1;i<n+1;i++){
        if (visit[i])
            count=count+1;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。