zoukankan      html  css  js  c++  java
  • 实训5.2

    图的带权邻接矩阵存储

    源程序:

    #include <stdio.h>
    #include <stdlib.h>
    #define VNUM 20
    const int MAX_INT=0;

    //图的类型定义
    typedef struct gp
    {
    char vexs[VNUM];
    int arcs[VNUM][VNUM];
    int vexnum,arcnum;
    }WGraph;

    //创建图
    void CreateGraph(WGraph *g)
    {
    int i,j,n,e,w,k;
    // char ch;
    printf("输入顶点个数:");
    scanf("%d",&n);
    printf("输入边数:");
    scanf("%d",&e);

    g->vexnum=n;
    g->arcnum=e;

    for(i=0;i<g->vexnum;i++)
    {
    getchar();
    printf("第%d个顶点: ",i+1);
    scanf("%c",&(g->vexs[i]));
    }

    for(i=0;i<g->vexnum;i++) //此循环的意思是:所有顶点都没有边
    {
    for(j=0;j<g->vexnum;j++)
    {
    g->arcs[i][j]=MAX_INT;
    }
    }

    printf("请输入起点 终点 权值,用空格隔开,参照教材135页. ");
    for(k=0;k<g->arcnum;k++)
    {
    scanf("%d%d%d",&i,&j,&w);
    g->arcs[i][j]=w; //(1)
    //g->arcs[j][i]=w; //(2) (1)(2)这两个语句说明,该图是无向图
    }
    }

    //输出邻接矩阵
    void OutGraph(WGraph *g)
    {
    int i,j;
    for(i=0;i<g->vexnum;i++)
    {
    for(j=0;j<g->vexnum;j++)
    printf("%4d",g->arcs[i][j]);
    printf(" ");
    }
    }

    //主函数
    int main()
    {
    WGraph g;
    CreateGraph(&g);
    printf("输出矩阵: ");
    OutGraph(&g);
    return 1;
    }

    运行结果:

  • 相关阅读:
    移动布局---1. 移动端布局基础
    1. CSS新特性之选择器
    1. H5新增语义化标签
    POJ 3281
    poj 1986
    POJ 3728
    poj 2763
    poj 2749
    uva 11294
    LA 3713
  • 原文地址:https://www.cnblogs.com/duanqibo/p/13288719.html
Copyright © 2011-2022 走看看