Для моего кода я проверяю, подключен ли граф с использованием 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, которая просто вызывает функцию, чтобы проверить, подключена ли она