有,无向图的简单矩阵创建

来源:互联网 发布:apache2 php 编辑:程序博客网 时间:2024/06/10 18:31

无向图的领接矩阵为对称矩阵,有向图的领接矩阵可能是对称的,也可能是不对称的,有向图的领接矩阵和无向图相似。

无向图的领接矩阵。

#include <stdio.h>typedef struct{int arcs[20][20];int vex[100];int vexnum;int arcnum;}AdjMatrix;void Create(AdjMatrix *G){int i,j,k,weight,vex1,vex2,vexnum,arcnum;printf("请输入无向网中的顶点数和边数:");scanf("%d%d",&G->vexnum,&G->arcnum);for(i=0;i<G->vexnum;i++)for(j=0;j<G->vexnum;j++)G->arcs[i][j]=0;printf("请输入无向网中%d个顶点:",G->vexnum);for(i=1;i<=G->vexnum;i++){printf("NO.%d个顶点:",i);scanf("%d",&G->vex[i]);}printf("请输入无向网中的%d条边:",G->arcnum);for(k=0;k<G->arcnum;k++){printf("NO.%d条边的下标:",k+1);scanf("%d",&vex1);scanf("%d",&vex2);printf("权值:");scanf("%d",&weight);G->arcs[vex1][vex2]=weight;G->arcs[vex2][vex1]=weight; }for(i=0;i<G->vexnum;i++){for(j=0;j<G->vexnum;j++)printf("%d  ",G->arcs[i][j]);printf("\n");}}int main(){AdjMatrix G;Create(&G);}

有向图的领接矩阵。

#include <stdio.h>typedef struct{int arcs[20][20];int vex[100];int vexnum;int arcnum;}AdjMatrix;void Create(AdjMatrix *G){int i,j,k,weight,vex1,vex2,vexnum,arcnum;printf("请输入无向网中的顶点数和边数:");scanf("%d%d",&G->vexnum,&G->arcnum);for(i=0;i<G->vexnum;i++)for(j=0;j<G->vexnum;j++)G->arcs[i][j]=0;printf("请输入无向网中%d个顶点:",G->vexnum);for(i=1;i<=G->vexnum;i++){printf("NO.%d个顶点:",i);scanf("%d",&G->vex[i]);}printf("请输入无向网中的%d条边:",G->arcnum);for(k=0;k<G->arcnum;k++){printf("NO.%d条边的起点下标和终点下标:",k+1);scanf("%d",&vex1);scanf("%d",&vex2);printf("权值:");scanf("%d",&weight);G->arcs[vex1][vex2]=weight; }for(i=0;i<G->vexnum;i++){for(j=0;j<G->vexnum;j++)printf("%d  ",G->arcs[i][j]);printf("\n");}}int main(){AdjMatrix G;Create(&G);}

可以看出有向领接矩阵图和无向领接矩阵图代码只是一点点不一样。无向对称,有向不一定对称。

以上代码在dev上调试通过

0 0
原创粉丝点击