图的邻接矩阵表示

来源:互联网 发布:电信软件下载 编辑:程序博客网 时间:2024/05/19 23:04
#include<stdio.h>#include<malloc.h>#define maxsize 100typedef 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);}

实现结果如下


原创粉丝点击