该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#define MaxVertexNum 100
typedef struct{
char vexs[MaxVertexNum];
int edges[MaxVertexNum][MaxVertexNum];
int n,e;
}MGraph;
void Create(MGraph *G)
{ int i,j;
printf("输入顶点数n和边数e: ");
scanf("%d,%d",&G->n,&G->e);
printf("输入邻接矩阵:\n");
for(i=0;in;i++)
{
for(j=0;jn;j++)
scanf("%d ",&G->edges[i][j]);
for(i=0;in;i++)
{
for(j=0;jn;j++)
printf("%d ",&G->edges[i][j]);
}
}
}
typedef enum{FALSE,TRUE} Boolean;
Boolean visited[MaxVertexNum];
void DFSM(MGraph *G,int i)
{
int j;
printf("%c",G->vexs[i]);
visited[i]=TRUE;
for(j=0;jn;j++)
if(G->edges[i][j]==1 && ! visited[j])
DFSM(G,j);
}
void DFS(MGraph *G)
{
int i;
for(i=0;in;i++)
visited[i]=FALSE;
for(i=0;in;i++)
if(!visited[i])
DFSM(G,i);
}
void BFS(MGraph *G,int k)
{
int i,j,f=0,r=0;
int cq[MaxVertexNum];
for(i=0;in;i++)
visited[i]=FALSE;
for(i=0;in;i++)
cq[i]=-1;
printf