8_2_1.c

来自「C语言常用算法源代码,非常好用非常好用」· C语言 代码 · 共 49 行

C
49
字号
/* ======================================== */
/*    程式实例: 8_2_1.c                    */
/*    图形的邻接数组表示法                  */
/* ======================================== */
int matrix[6][6];                 /* 图形的邻接数组   */

/* ---------------------------------------- */
/*  建立图形                                */
/* ---------------------------------------- */
void creategraph(int *node,int num)
{
   int from;                      /* 边线的起点       */
   int to;                        /* 边线的终点       */
   int i;

   for ( i = 0; i < num; i++ )    /* 读取边线的回路   */
   {
      from = node[i*2];           /* 边线的起点       */
      to = node[i*2+1];           /* 边线的终点       */
      matrix[from][to] = 1;       /* 存入图形         */
   }
}

/* ---------------------------------------- */
/*  主程式: 建立图形后,将邻接数组印出.      */
/* ---------------------------------------- */
void main()
{
   int node[12][2] = { {1, 2}, {2, 1},  /* 边线数组   */
                       {1, 3}, {3, 1},
                       {2, 3}, {3, 2},
                       {2, 4}, {4, 2},
                       {3, 5}, {5, 3},
                       {4, 5}, {5, 4} };
   int i,j;

   for ( i = 1; i <= 5; i++ )
      for ( j = 1; j <= 5; j++ )
	 matrix[i][j] = 0;        /* 清除图形邻接数组 */
   creategraph(node,12);         /* 建立图形         */
   printf("图形的邻接数组内容:\n");
   for ( i = 1; i <= 5; i++ )
   {
      for ( j = 1; j <= 5; j++ )
         printf(" %d ",matrix[i][j]); /* 印出数组内容 */
      printf("\n");                   /* 换行         */
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?