目录

  • 1 第一单元
    • 1.1 第一课时
    • 1.2 第二课时
    • 1.3 第三课时
    • 1.4 第四课时
    • 1.5 第五课时
    • 1.6 第六课时
    • 1.7 第七课时
    • 1.8 第八课时
    • 1.9 第九课时
    • 1.10 第十课时
    • 1.11 第十一课时
    • 1.12 第十二课时
    • 1.13 第十三课时
    • 1.14 第十四课时
    • 1.15 第十五课时
    • 1.16 第十六课时
    • 1.17 第十七课时
    • 1.18 第十八课时
    • 1.19 第十九课时
    • 1.20 第二十课时
    • 1.21 第二十一课时
    • 1.22 第二十二课时
    • 1.23 第二十三课时
    • 1.24 第二十四课时
    • 1.25 第二十五课时
    • 1.26 第二十六课时
    • 1.27 第二十七课时
    • 1.28 第二十八课时
    • 1.29 第二十九课时
    • 1.30 第三十课时
    • 1.31 第三十一课时
    • 1.32 复习提纲
第二十四课时

读懂下列程序,仿例题建立其他图的邻接矩阵。

程序6-1

#include<malloc.h>

#include<stdio.h>

#define MAX_VEX 50

intcreatcost(cost)

intcost[][MAX_VEX];                      /*cost这个二维数组用于表示图的邻接矩阵*/

{

    int vexnum,arcnum,i,j,k,v1,v2;

    printf("input vexnumarcnum:\n");        /*输入图的顶点数和弧数或边数*/

    scanf("%d,%d",&vexnum,&arcnum);

    for(i=0;i<vexnum;i++)

        for(j=0;j<vexnum;j++)

           cost[i][j]=0;

    for(k=0;k<arcnum;k++)

    {

        printf("v1,v2=");

        scanf("%d,%d",&v1,&v2);      /*输入所有边或所有弧的一对顶点V1V2*/

        cost[v1][v2]=1;

        /*cost[v2][v1]=1;*/             /*若为无向图则应加上此语句*/

    }

    return(vexnum);

}

 

main()

{

    int i,j,vexnum;

    int cost[MAX_VEX][MAX_VEX];

    vexnum=creatcost(cost);                  /*建立图的邻接矩阵*/

    printf("Output AdjMatrix of graph:\n");

    for(i=0;i<vexnum;i++)

    {

        for(j=0;j<vexnum;j++)

            printf(" %3d",cost[i][j]);

        printf("\n");

    }

}

程序运行结果:

/*对于教材第143页图6.12中的G2 图,运行时输入数据及运行结果显示如下: */

input vexnumarcnum

33(回车)

v1v2=01(回车)

v1v2=02(回车)

v1v2=21(回车)

Output AdjMatrixof graph:

0 1 1