资源描述:
《图的创建及相关操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#defineMAX_VERTEX_NUM10/*最大顶点数为10*/intvisited[MAX_VERTEX_NUM];/******邻接矩阵定义******/typedefstructArcCell{intadj;int*info;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{charvexs[MAX_VERTEX_NUM];AdjMatrixarcs;intve
2、xnum,arcnum;}MGraph;/********邻接表定义*******//*表结点*/typedefstructArcNode{intadjvex;structArcNode*nextarc;}ArcNode;/*头结点*/typedefstructVNode{chardata;ArcNode*firstarc;}VNode,AdjList[MAX_VERTEX_NUM];typedefstruct{AdjListvertices;intvexnum,arcnum;}ALGraph;/*****PRIM最小边
3、辅助数组******/typedefstructArcInfo{charadjvex;intlowcost;}ArcInfo,MinEdge[MAX_VERTEX_NUM];/***************图的存储****************创建邻接矩阵:CreateMGraph创建邻接表:CreateALGraph****************************************///邻接矩阵//文件读取顶点数、边数、边信息,创建邻接矩阵intCreateMGraph(MGraph&G){inti,j
4、,k;charfilename[10];inta,b;//用来存储边依附的点v1,v2的位置intw;FILE*fp1;printf("t请输入文件名称:");scanf("%s",filename);if((fp1=fopen(filename,"r"))==NULL){printf("t文件打开失败!");return0;}fscanf(fp1,"%d,%d",&G.vexnum,&G.arcnum);printf("t已创建的邻接矩阵的结点跟弧的个数:");printf("t%5d%5d",G.
5、vexnum,G.arcnum);for(i=0;i6、MGraph(MGraph&M){inti,j;printf("t用邻接矩阵表示无向图:");for(i=0;i7、("2.txt","w");inti,j=0,k=0;if(fp==NULL){printf("t文件打开失败!");return0;}else{printf("t存储信息,请输入顶点数,边数:");scanf("%d,%d",&G.vexnum,&G.arcnum);printf("%d,%d",G.vexnum,G.arcnum);fprintf(fp,"%d,%d",G.vexnum,G.arcnum);/*printf("t请输入各边:");for(i=0;i8、f("t第%d条边:",i+1);scanf("%d,%d",&j,&k);fprintf(fp,"%d,%d",j,k);printf("a");}*/printf("t邻接表文件创建成功!");return1;}fclose(fp);}//文件读取顶点数、边数、边信息,创建邻接表intCreateALGrap