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 (将#修改为@)