欢迎来到天天文库
浏览记录
ID:38701947
大小:48.00 KB
页数:8页
时间:2019-06-17
《数据结构 图基本操作代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五图//图的邻接矩阵存储#include"stdio.h"#include"stdlib.h"typedefstruct{intadj;}AdjMatrix[10][10];typedefstruct{intvexs[10];AdjMatrixarcs;intvexnum,arcnum;}MGraph;intLocateVex(MGraph&G,intv){intk,j=0;for(k=0;k2、rintf("请输入图的顶点数:");scanf("%d",&G.vexnum);printf("请输入图的边数:");scanf("%d",&G.arcnum);//printf("请输入图的顶点:");for(i=0;i3、=LocateVex(G,v1);j=LocateVex(G,v2);G.arcs[i][j].adj=w;//G.arcs[j][i].adj=G.arcs[i][j].adj;}}voiddisplay(MGraph&G){inti,j;for(i=0;i4、lib.h"typedefstructArcNode{intadjvex;structArcNode*nextarc;intweight;}ArcNode;typedefstructVNode{charvertex;//顶点域ArcNode*firstarc;}VNode,AdjList[10];typedefstruct{AdjListadjlist;intvexnum,arcnum;}ALGraph;intLocateVex(ALGraph&G,charv){intk,j=0;for(k=0;k5、eak;}returnj;}voidCreateALGraph(ALGraph&G){//建立无向图的邻接表表示inti,j,k,w;charv1,v2;ArcNode*s;printf("请输入顶点数和边数(vexnum,arcnum):");scanf("%d,%d",&G.vexnum,&G.arcnum);//读人顶点数和边数for(i=0;i6、ULL;//边表置为空表}for(k=0;kadjvex=j;//邻接点序号为js->weight=w;s->nextarc=G.adjlist[i].firstarc;G.adjlist[7、i].firstarc=s;//将新结点*s插入顶点vi的边表头部//若图为无向图则加上下面的四句代码,若图为有向图则注释下面的四句代码s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=i;//邻接点序号为is->weight=w;s->nextarc=G.adjlist[j].firstarc;G.adjlist[j].firstarc=s;//将新结点*s插入顶点
2、rintf("请输入图的顶点数:");scanf("%d",&G.vexnum);printf("请输入图的边数:");scanf("%d",&G.arcnum);//printf("请输入图的顶点:");for(i=0;i3、=LocateVex(G,v1);j=LocateVex(G,v2);G.arcs[i][j].adj=w;//G.arcs[j][i].adj=G.arcs[i][j].adj;}}voiddisplay(MGraph&G){inti,j;for(i=0;i4、lib.h"typedefstructArcNode{intadjvex;structArcNode*nextarc;intweight;}ArcNode;typedefstructVNode{charvertex;//顶点域ArcNode*firstarc;}VNode,AdjList[10];typedefstruct{AdjListadjlist;intvexnum,arcnum;}ALGraph;intLocateVex(ALGraph&G,charv){intk,j=0;for(k=0;k5、eak;}returnj;}voidCreateALGraph(ALGraph&G){//建立无向图的邻接表表示inti,j,k,w;charv1,v2;ArcNode*s;printf("请输入顶点数和边数(vexnum,arcnum):");scanf("%d,%d",&G.vexnum,&G.arcnum);//读人顶点数和边数for(i=0;i6、ULL;//边表置为空表}for(k=0;kadjvex=j;//邻接点序号为js->weight=w;s->nextarc=G.adjlist[i].firstarc;G.adjlist[7、i].firstarc=s;//将新结点*s插入顶点vi的边表头部//若图为无向图则加上下面的四句代码,若图为有向图则注释下面的四句代码s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=i;//邻接点序号为is->weight=w;s->nextarc=G.adjlist[j].firstarc;G.adjlist[j].firstarc=s;//将新结点*s插入顶点
3、=LocateVex(G,v1);j=LocateVex(G,v2);G.arcs[i][j].adj=w;//G.arcs[j][i].adj=G.arcs[i][j].adj;}}voiddisplay(MGraph&G){inti,j;for(i=0;i4、lib.h"typedefstructArcNode{intadjvex;structArcNode*nextarc;intweight;}ArcNode;typedefstructVNode{charvertex;//顶点域ArcNode*firstarc;}VNode,AdjList[10];typedefstruct{AdjListadjlist;intvexnum,arcnum;}ALGraph;intLocateVex(ALGraph&G,charv){intk,j=0;for(k=0;k5、eak;}returnj;}voidCreateALGraph(ALGraph&G){//建立无向图的邻接表表示inti,j,k,w;charv1,v2;ArcNode*s;printf("请输入顶点数和边数(vexnum,arcnum):");scanf("%d,%d",&G.vexnum,&G.arcnum);//读人顶点数和边数for(i=0;i6、ULL;//边表置为空表}for(k=0;kadjvex=j;//邻接点序号为js->weight=w;s->nextarc=G.adjlist[i].firstarc;G.adjlist[7、i].firstarc=s;//将新结点*s插入顶点vi的边表头部//若图为无向图则加上下面的四句代码,若图为有向图则注释下面的四句代码s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=i;//邻接点序号为is->weight=w;s->nextarc=G.adjlist[j].firstarc;G.adjlist[j].firstarc=s;//将新结点*s插入顶点
4、lib.h"typedefstructArcNode{intadjvex;structArcNode*nextarc;intweight;}ArcNode;typedefstructVNode{charvertex;//顶点域ArcNode*firstarc;}VNode,AdjList[10];typedefstruct{AdjListadjlist;intvexnum,arcnum;}ALGraph;intLocateVex(ALGraph&G,charv){intk,j=0;for(k=0;k5、eak;}returnj;}voidCreateALGraph(ALGraph&G){//建立无向图的邻接表表示inti,j,k,w;charv1,v2;ArcNode*s;printf("请输入顶点数和边数(vexnum,arcnum):");scanf("%d,%d",&G.vexnum,&G.arcnum);//读人顶点数和边数for(i=0;i6、ULL;//边表置为空表}for(k=0;kadjvex=j;//邻接点序号为js->weight=w;s->nextarc=G.adjlist[i].firstarc;G.adjlist[7、i].firstarc=s;//将新结点*s插入顶点vi的边表头部//若图为无向图则加上下面的四句代码,若图为有向图则注释下面的四句代码s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=i;//邻接点序号为is->weight=w;s->nextarc=G.adjlist[j].firstarc;G.adjlist[j].firstarc=s;//将新结点*s插入顶点
5、eak;}returnj;}voidCreateALGraph(ALGraph&G){//建立无向图的邻接表表示inti,j,k,w;charv1,v2;ArcNode*s;printf("请输入顶点数和边数(vexnum,arcnum):");scanf("%d,%d",&G.vexnum,&G.arcnum);//读人顶点数和边数for(i=0;i6、ULL;//边表置为空表}for(k=0;kadjvex=j;//邻接点序号为js->weight=w;s->nextarc=G.adjlist[i].firstarc;G.adjlist[7、i].firstarc=s;//将新结点*s插入顶点vi的边表头部//若图为无向图则加上下面的四句代码,若图为有向图则注释下面的四句代码s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=i;//邻接点序号为is->weight=w;s->nextarc=G.adjlist[j].firstarc;G.adjlist[j].firstarc=s;//将新结点*s插入顶点
6、ULL;//边表置为空表}for(k=0;kadjvex=j;//邻接点序号为js->weight=w;s->nextarc=G.adjlist[i].firstarc;G.adjlist[
7、i].firstarc=s;//将新结点*s插入顶点vi的边表头部//若图为无向图则加上下面的四句代码,若图为有向图则注释下面的四句代码s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=i;//邻接点序号为is->weight=w;s->nextarc=G.adjlist[j].firstarc;G.adjlist[j].firstarc=s;//将新结点*s插入顶点
此文档下载收益归作者所有