//判断邻接矩阵中两个点是否相邻
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 20
typedef struct {
int VERTEX[MAX_VERTEX_NUM];//顶点数
int AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//矩阵
int vexnum,arcnum;//顶点数,弧数
}MGraph;
//************创建矩阵***********************
void CreatGraph(MGraph *g,int n)
{
int i,j,m1,m2,vexnum;
int AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
g->vexnum=n;
for(i=1;i<=vexnum;i++)
g->VERTEX[i]=i;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
g->AdjMatrix[i][j]=0;
printf("please input AdjMatrix end with (0,0)./n");
scanf("%d %d",&m1,&m2);
while(m1!=0&&m2!=0)
{
g->AdjMatrix[m1][m2]=1;
g->AdjMatrix[m2][m1]=1;
scanf("%d %d",&m1,&m2);
}
}
//**************输出矩阵******************
void PrintMGraph(MGraph *g)
{
int i,j,n;
printf("The AdjMatrix is /n");
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
printf("%3d",g->AdjMatrix[i][j]);
printf("/n");
}
}
//*****************判断是否相邻******************
void Judge(MGraph *g)
{
int m,n;
printf("please input two vertexs :/n");
scanf("%d %d",&m,&n);
if(g->AdjMatrix[m][n]==1)
printf("The two vertexs are near./n");
else
printf("The two vertexs aren't near./n");
}
//***********主函数*********************
int main()
{
int n;
MGraph *g=(MGraph *)malloc(sizeof(MGraph));
printf("please input vexnum:/n");
scanf("%d",&n);
CreatGraph(g, n);
PrintMGraph(g);
Judge(g);
getch();
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 20
typedef struct {
int VERTEX[MAX_VERTEX_NUM];//顶点数
int AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//矩阵
int vexnum,arcnum;//顶点数,弧数
}MGraph;
//************创建矩阵***********************
void CreatGraph(MGraph *g,int n)
{
int i,j,m1,m2,vexnum;
int AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
g->vexnum=n;
for(i=1;i<=vexnum;i++)
g->VERTEX[i]=i;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
g->AdjMatrix[i][j]=0;
printf("please input AdjMatrix end with (0,0)./n");
scanf("%d %d",&m1,&m2);
while(m1!=0&&m2!=0)
{
g->AdjMatrix[m1][m2]=1;
g->AdjMatrix[m2][m1]=1;
scanf("%d %d",&m1,&m2);
}
}
//**************输出矩阵******************
void PrintMGraph(MGraph *g)
{
int i,j,n;
printf("The AdjMatrix is /n");
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
printf("%3d",g->AdjMatrix[i][j]);
printf("/n");
}
}
//*****************判断是否相邻******************
void Judge(MGraph *g)
{
int m,n;
printf("please input two vertexs :/n");
scanf("%d %d",&m,&n);
if(g->AdjMatrix[m][n]==1)
printf("The two vertexs are near./n");
else
printf("The two vertexs aren't near./n");
}
//***********主函数*********************
int main()
{
int n;
MGraph *g=(MGraph *)malloc(sizeof(MGraph));
printf("please input vexnum:/n");
scanf("%d",&n);
CreatGraph(g, n);
PrintMGraph(g);
Judge(g);
getch();
return 0;
}