• 无向图的邻接矩阵--p134


    源程序:

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

    const int vnum=20;

    typedef struct gp
    {
      char vexs[vnum];
      int arcs[vnum][vnum];
      int vexnum,arcnum;
    }Graph;

    //输入顶点和边,创建图
    void create(Graph *g)
    {
      int i,j,k;
      printf("请输入顶点数和边数:");
      scanf("%d%d",&g->vexnum,&g->arcnum);
      printf("请输入 %d 个顶点的值:",g->vexnum);
      getchar();
      for(i=0;i<g->vexnum;i++)
      scanf("%c",&g->vexs[i]);
      for(i=0;i<g->vexnum;i++) //此双重循环表示所有结点都没有连接
        for(j=0;j<g->vexnum;j++)
          g->arcs[i][j]=0;

      printf("请输入 %d 条边:",g->arcnum);
      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->vexnum;i++)
        printf("%3c",g->vexs[i]);
      printf(" ");
      for(i=0;i<g->vexnum;i++)
      {
        printf("%3c",g->vexs[i]);
        for(int j=0;j<g->vexnum;j++)
          printf("%3d",g->arcs[i][j]);
        printf(" ");
      }
    }

    int main()
    {
      Graph g,*pg=&g;
      create(pg);
      showMatrix(pg);
      return 1;
    }

    运行结果:

  • 相关阅读:
    【博弈论】取火柴游戏
    【贪心】马拉松接力赛
    【贪心】0/1背包
    【贪心】赶作业
    C# 设计模式 (一)
    C# 反射入门
    C# WinForm 访问webService天气预报
    WebService 测试地址
    C# Windows服务相关
    CSS 案例学习
  • 原文地址:https://www.cnblogs.com/duanqibo/p/11981087.html
Copyright © 2020-2023  润新知