首页 > 其他 > 详细

无向带权图的邻接矩阵表示--p135

时间:2019-12-04 15:08:31      阅读:383      评论:0      收藏:0      [点我收藏+]

源程序:

/*无向带权图的邻接矩阵表示法*/
#include <stdio.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("输入顶点个数:\n");
  scanf("%d",&n);
  printf("输入边数:\n");
  scanf("%d",&e);

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

  for(i=0;i<g->vexnum;i++)
  {

    getchar();
    printf("第%d个顶点:\n",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("请输入起点 终点 权值,用空格隔开,参照教材p135.\n");
  for(k=0;k<g->arcnum;k++)
  {
    scanf("%d %d %d",&i,&j,&w);
    g->arcs[i][j]=w;
    g->arcs[j][i]=w;
  }
}

void OutGraph(WGraph *g) /*输出矩阵*/

{
  int i,j;
  for(i=0;i<g->vexnum;i++)
  {
    for(j=0;j<g->vexnum;j++)
      printf("%d ",g->arcs[i][j]);
    printf("\n");
  }
}
void main()
{
  WGraph g;

  CreateGraph(&g);

  printf("输出矩阵\n");
  OutGraph(&g);
}

运行结果:

技术分享图片

无向带权图的邻接矩阵表示--p135

原文:https://www.cnblogs.com/duanqibo/p/11981326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!