欢迎来到天天文库
浏览记录
ID:12660334
大小:17.00 KB
页数:3页
时间:2018-07-18
《用邻接矩阵表示法创建有向图(数据结构)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include#defineMAX_VERTEX_NUM20//定义最多顶点个数#defineINFINITY32768//定义无穷大//描述图的类型,用枚举型类型来说明typedefenum{DG,DN,UDG,UDN}GraphKind;//定义顶点数据类型typedefcharVertexData;//定义邻接矩阵中元素值(即边信息)的数据类型typedefintArcNode;//定义图的邻接矩阵类型typedefstruct{Ve
2、rtexDatavertex[MAX_VERTEX_NUM];ArcNodearcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];intvertexnum,arcnum;GraphKindkind;}AdjMatrix;//图的邻接矩阵表示类型intLocateVertex(AdjMatrix*G,VertexDatav)//求顶点位置函数{intj=-1,k;for(k=0;kvertexnum;k++){if(G->vertex[k]==v){returnk;}}returnj;}intCreat
3、eDN(AdjMatrix*G)//创建一个有向网{inti,j,k,weight;VertexDatav1,v2;printf("输入图的顶点数和弧数,以逗号分隔");scanf("%d,%d",&G->vertexnum,&G->arcnum);for(i=0;ivertexnum;i++)//初始化邻接矩阵(主对角线元素全为零,其余元素为无穷大){for(j=0;jvertexnum;j++){G->arcs[i][j]=0;}}printf("输入图的顶点信息");getchar();for(i=
4、0;ivertexnum;i++)scanf("%c",&G->vertex[i]);printf("输出图的顶点信息");for(i=0;ivertexnum;i++)printf("%d,%c",i,G->vertex[i]);getchar();printf("输入一条弧的两个顶点以及该弧的权值,以空格分隔");//创建邻接矩阵for(k=0;karcnum;k++){printf("v1=");v1=getchar();getchar();printf("v2=");v2=getcha
5、r();getchar();printf("weight=");scanf("%d",&weight);getchar();i=LocateVertex(G,v1);//寻找v1和v2在顶点数组中的位置j=LocateVertex(G,v2);G->arcs[i][j]=weight;//邻接矩阵第i行第j列元素值为weightG->arcs[j][i]=weight;}return1;}voidOutPutGraph(AdjMatrixG){inti,j;for(i=0;i6、n");for(j=0;j
6、n");for(j=0;j
此文档下载收益归作者所有