现在的位置: 首页 > 综合 > 正文

判断邻接矩阵中两个点是否相邻

2014年02月28日 ⁄ 综合 ⁄ 共 1807字 ⁄ 字号 评论关闭
//判断邻接矩阵中两个点是否相邻
#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;
  }
 

抱歉!评论已关闭.