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

    图的邻接矩阵存储 

    源程序

    #include <stdio.h>
    #include <stdlib.h>

    const int vnum=20;

    //定义图的类型
    typedef struct gp
    {
    char verx[vnum];
    int arcs[vnum][vnum];
    int vernum,arcnum;
    }Graph;

    //创建图,输入顶点和边的信息
    void creat(Graph *g)
    {
    int i,j,k;
    printf("请输入顶点数和边数:");
    scanf("%d%d",&g->vernum,&g->arcnum);
    printf("请输入%d个顶点的值:",g->vernum);
    getchar();
    for(i=0;i<g->vernum;i++)
    scanf("%c",&g->verx[i]);

    for(i=0;i<g->vernum;i++) //此双重循环表示所有结点都没有连接
    for(j=0;j<g->vernum;j++)
    g->arcs[i][j]=0;

    printf("请输入 %d条边",g->arcnum); //连接两点形成边,有边就是1,无边就是0
    for(k=0;k<g->arcnum;k++)
    {
    scanf("%d%d",&i,&j);
    g->arcs[i][j]=1;
    g->arcs[j][i]=1;
    }
    }

    //输出邻接矩阵
    void showMatrix(Graph *g)
    {
    int i;
    printf(" ");
    for(i=0;i<g->vernum;i++) //输出第一行的提示点:A B C D
    printf("%3c",g->verx[i]);
    printf(" "); //换行

    for(i=0;i<g->vernum;i++)
    {
    printf("%3c",g->verx[i]);
    for(int j=0;j<g->vernum;j++)
    printf("%3d",g->arcs[i][j]);
    printf(" ");
    }
    }

    ///主函数
    int main()
    {
    Graph g,*pg=&g;
    creat(pg);
    showMatrix(pg);
    return 1;
    }

    运行结果:

  • 相关阅读:
    [ECNU 1624] 求交集多边形面积
    [转] Java之ACM速成
    [swustoj 191] 迷宫逃离
    [Swustoj 24] Max Area
    PICK定理模板
    [HDU 1007] Quoit Design
    [转] 最近点对距离问题
    [POJ 2184] Cow Exhibition
    SGU 144.Meeting
    SGU 143.Long Live the Queen(女王万岁)
  • 原文地址:https://www.cnblogs.com/duanqibo/p/13288699.html
Copyright © 2011-2022 走看看