码迷,mamicode.com
首页 > 其他好文 > 详细

实训5.1

时间:2020-07-12 17:06:40      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:表示   i++   ret   std   jpg   就是   信息   输入   int   

图的邻接矩阵存储 

源程序

技术图片

#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("\n"); //换行

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("\n");
}
}

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

运行结果:

技术图片

实训5.1

标签:表示   i++   ret   std   jpg   就是   信息   输入   int   

原文地址:https://www.cnblogs.com/duanqibo/p/13288699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!