Используя метод DFS в C, как я могу сделать так, чтобы не было ввода пользователя - PullRequest
0 голосов
/ 14 декабря 2018

Для моего кода я проверяю, подключен ли граф с использованием DFS.На данный момент он использует пользовательский ввод.Я хочу, чтобы он не использовал пользовательский ввод для 2D-массива (матрицы).Что бы я сделал с этой частью isConnected() (см. Ниже), чтобы исправить ее, чтобы я мог использовать глобальный 2D-массив b вместо глобального 2D-массива a

printf("\nEnter adjacency matrix : \n");
    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++)
        scanf("%d",&a[i][j]);

Это то, что я имею до сих пор

int a[20][20],reach[20],n;
int b[4][4] = { {0,1,1,1},{0,0,1,0},{0,0,0,0},{0,0,0,1}};
void dfs(int v){
    int i;
    reach[v]=1;
    for(i=1;i<=n;i++)
        if(a[v][i]&&!reach[i]){
        printf("\n%d->%d",v,i);
        dfs(i);
    }
}
void isConnected(){
    int i,j,count=0;
    printf("\n no of vertices is 4 ");
    // scanf("%d",&n);
    int n = 4;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
        reach[i]=0;
        a[i][j]=0;
    }

    printf("\nEnter adjacency matrix : \n");
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    dfs(1);
    for(i=1;i<=n;i++)
        if(reach[i])
            count++;
    if(count==n)
        printf("\nGraph is connected.");
    else
    printf("\nGraph is disconnected.");
}

Чтобы сохранить беспорядок, я вынул main, которая просто вызывает функцию, чтобы проверить, подключена ли она

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...