您的位置:首页 > 其它

图的邻接矩阵表示

2017-11-19 20:38 169 查看
#include<stdio.h>
#include<malloc.h>
#define maxsize 100
typedef char Vertextype;
typedef struct{
Vertextype vexs[maxsize];
int edge[maxsize][maxsize];
int e,n;
}Graph;
//得到图的第i个顶点的值
Vertextype GetValue(Graph *g,int i){
if(i<0 || i>=g->n) exit(1);
return g->vexs[i];
}
//输入顶点和边,创建图
void create(Graph *g){
int i,j,k;
printf("请输入顶点和边数:");
scanf("%d%d",&g->n,&g->e);
printf("请输入%d个顶点的值:",g->n);
getchar();
for(i=0;i<g->n;i++)
scanf("%c",&g->vexs[i]);
for(i=0;i<g->n;i++)
for(j=0;j<g->n;j++)
g->edge[i][j] = 0;
printf("请输入%d条边:",g->e);
for(k=0;k<g->e;k++){
scanf("%d%d",&i,&j);
g->edge[i][j] = 1;
g->edge[j][i] = 1;
}
}
//输出图的临接矩阵
void Showmatrix(Graph *g){
printf(" ");
for(int i=0;i<g->n;i++)
printf("%3c",g->vexs[i]);
printf("\n");
for(int i=0;i<g->n;i++){
printf("%3c",g->vexs[i]);
for(int j=0;j<g->n;j++)
printf("%3d",g->edge[i][j]);
printf("\n");
}
}
int main()
{
Graph g,*pg = &g;
create(pg);
Showmatrix(pg);
}

实现结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: