zoukankan      html  css  js  c++  java
  • 无向图的邻接矩阵--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;
    }

    运行结果:

  • 相关阅读:
    SPOJ LCS2
    SPOJ NSUBSTR
    1977: [BeiJing2010组队]次小生成树 Tree
    2002: [Hnoi2010]Bounce 弹飞绵羊
    P3690 【模板】Link Cut Tree (动态树)
    P2093 [国家集训队]JZPFAR
    2648: SJY摆棋子
    HDU 2966 In case of failure
    bzoj 一些题目汇总
    BZOJ3653谈笑风生——可持久化线段树+dfs序
  • 原文地址:https://www.cnblogs.com/duanqibo/p/11981087.html
Copyright © 2011-2022 走看看