8_2_1.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:2k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 8_2_1.c                    */
  3. /*    图形的邻接数组表示法                  */
  4. /* ======================================== */
  5. int matrix[6][6];                 /* 图形的邻接数组   */
  6. /* ---------------------------------------- */
  7. /*  建立图形                                */
  8. /* ---------------------------------------- */
  9. void creategraph(int *node,int num)
  10. {
  11.    int from;                      /* 边线的起点       */
  12.    int to;                        /* 边线的终点       */
  13.    int i;
  14.    for ( i = 0; i < num; i++ )    /* 读取边线的回路   */
  15.    {
  16.       from = node[i*2];           /* 边线的起点       */
  17.       to = node[i*2+1];           /* 边线的终点       */
  18.       matrix[from][to] = 1;       /* 存入图形         */
  19.    }
  20. }
  21. /* ---------------------------------------- */
  22. /*  主程式: 建立图形后,将邻接数组印出.      */
  23. /* ---------------------------------------- */
  24. void main()
  25. {
  26.    int node[12][2] = { {1, 2}, {2, 1},  /* 边线数组   */
  27.                        {1, 3}, {3, 1},
  28.                        {2, 3}, {3, 2},
  29.                        {2, 4}, {4, 2},
  30.                        {3, 5}, {5, 3},
  31.                        {4, 5}, {5, 4} };
  32.    int i,j;
  33.    for ( i = 1; i <= 5; i++ )
  34.       for ( j = 1; j <= 5; j++ )
  35.  matrix[i][j] = 0;        /* 清除图形邻接数组 */
  36.    creategraph(node,12);         /* 建立图形         */
  37.    printf("图形的邻接数组内容:n");
  38.    for ( i = 1; i <= 5; i++ )
  39.    {
  40.       for ( j = 1; j <= 5; j++ )
  41.          printf(" %d ",matrix[i][j]); /* 印出数组内容 */
  42.       printf("n");                   /* 换行         */
  43.    }
  44. }