编到这实在是想不出来了,希望解答
#define _WIN64
#include<stdio.h>
#include<malloc.h>
#define NULL
#define TURE 1
#define OK 1
#define FLASE 0
#define Error -1
#define MAX 100
#define INFINITY 32768
typedef char vertex;
typedef struct
{
char vertex[100];
int arcs[100][100];
}AMGraph;
void Create(AMGraph *s,int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",s->arcs[i][j]);
}
}
}
void DepthFirstSearch(AMGraph *s,int visit[],int n,int i)
{
int k;
visit[i]=1;
for(k=0;k<n;k++)
{
if(!visit[k]&&s->arcs[i][k]==1)
{
DepthFirstSearch(&s,visit,n,k);
}
}
}
void MakeVisit(AMGraph *s,int visit[],int n)
{
int i,flag=0;
for(i=0;i<n;i++)
visit[i]=0;
for(i=0;i<n;i++)
{
if(!visit[i])
{
flag++;
DepthFirstSearch(&s,visit,n);
}
}
printf("%d",flag);
}
int main()
{
int n,visit[100];
AMGraph s=NULL ;
s=(AMGraph)malloc(sizeof(AMGraph));
scanf("%d",&n);
Create(&s,n);
MakeVisit(&s,visit,n);
}
error C2198: 'DepthFirstSearch' : too few actual parameters
问题出现在dfs中的dfs那句
改了好几个与输入有关的地方
怎么样能不错就行,最好可以讲一下为什么会这样子
修改处见注释,供参考:
//#define _WIN64 修改
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define TURE 1
#define OK 1
#define FLASE 0
#define Error -1
#define MAX 100
#define INFINITY 32768
typedef char vertex;
typedef struct
{
char vertex[100];
int arcs[100][100];
}AMGraph;
void Create(AMGraph* s, int n)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &s->arcs[i][j]);//修改
//scanf("%d", s->arcs[i][j]);
}
}
}
void DepthFirstSearch(AMGraph* s, int visit[], int n, int i)
{
int k;
visit[i] = 1;
for (k = 0; k < n; k++)
{
if (!visit[k] && s->arcs[i][k] == 1)
{
DepthFirstSearch(s, visit, n, k); //修改
//DepthFirstSearch(&s, visit, n, k);
}
}
}
void MakeVisit(AMGraph* s, int visit[], int n)
{
int i, flag = 0;
for (i = 0; i < n; i++)
visit[i] = 0;
for (i = 0; i < n; i++)
{
if (!visit[i])
{
flag++;
DepthFirstSearch(s, visit, n, i);//修改
//DepthFirstSearch(&s, visit, n);
}
}
printf("%d", flag);
}
int main()
{
int n, visit[100];
AMGraph* s = NULL; //AMGraphs = NULL;修改
s = (AMGraph*)malloc(sizeof(AMGraph));
scanf("%d", &n);
Create(s, n); //Create(&s, n);修改
MakeVisit(s, visit, n);//MakeVisit(&s, visit, n);修改
}