欢迎来到天天文库
浏览记录
ID:55530063
大小:77.50 KB
页数:5页
时间:2020-05-16
《数据结构采邻接矩阵构造无向网G.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验目的采用数组(邻接矩阵)表示法,构造无向网G实验内容编程序并上机调试运行。采用数组(邻接矩阵)表示法,构造无向网G编写程序//采用邻接矩阵表示法,构造无向网G#defineMAX_VERTEX_NUM20//最大顶点个数#include//typedefenum{DG,DN,UDG,UDN}Graphkind;typedefstructArcCell{intadj;//int*info;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{intvexs[MAX_VERTEX_NUM];Ad
2、jMatrixarcs;intvexnum,arcnum;//GraphKindkind;}MGraph;intCreateUDN(MGraphG){inti,j,k,v1,v2,w;printf("请输入顶点数和边数(中间用逗号隔开):");scanf("%d,%d",&G.vexnum,&G.arcnum);for(i=0;i3、s[i][j].adj=0;//G.arcs[i][j].info=NULL;}for(k=0;k4、("****************************************");printf("输出:");for(i=0;i5、i]==ver)returni;}//main函数intmain(){MGraphG;CreateUDN(G);return0;}运行程序:输入6个顶点和10条边,依次输入以上权值<1,2,6><1,3,1><1,4,5><2,3,5><2,5,3><3,4,5><3,5,6><3,6,4><4,6,2><5,6,6>然后输出矩阵表,可以看到其权值是对应的。程序解析:1.编写头文件,定义最大顶点个数为20个.定义权值类型为int型,顶点和弧数为int型。顶点类型为int型。2.编写函数CreateUDN。先用一个scanf获得用户的顶点数和边数输入,类型为整型。然后用一个for语句将0到6、顶点数的顶点信息输入,然后初始化邻接矩阵,用内外循环将矩阵都初始化为最大值,最大值默认为0.让其每一位的初始值都为0.然后构造邻接矩阵,用一个for函数实现邻接矩阵数据的输入,对应到行和列。用scanf获得用户输入,类型为整型。然后i和j调用LocateVex函数。使矩阵对应的值为权值,然后进行对称弧的定义。输出矩阵。先内循环输出横向的权值,在外循环输出竖向的权值。3.编写LocateVex函数。设ver为int型,用一个for语句实现循环,从0到顶点数,若顶点等于ver则返回第几个顶点i.4.建立main函数。Main函数直接调用CreateUDN函数。
3、s[i][j].adj=0;//G.arcs[i][j].info=NULL;}for(k=0;k4、("****************************************");printf("输出:");for(i=0;i5、i]==ver)returni;}//main函数intmain(){MGraphG;CreateUDN(G);return0;}运行程序:输入6个顶点和10条边,依次输入以上权值<1,2,6><1,3,1><1,4,5><2,3,5><2,5,3><3,4,5><3,5,6><3,6,4><4,6,2><5,6,6>然后输出矩阵表,可以看到其权值是对应的。程序解析:1.编写头文件,定义最大顶点个数为20个.定义权值类型为int型,顶点和弧数为int型。顶点类型为int型。2.编写函数CreateUDN。先用一个scanf获得用户的顶点数和边数输入,类型为整型。然后用一个for语句将0到6、顶点数的顶点信息输入,然后初始化邻接矩阵,用内外循环将矩阵都初始化为最大值,最大值默认为0.让其每一位的初始值都为0.然后构造邻接矩阵,用一个for函数实现邻接矩阵数据的输入,对应到行和列。用scanf获得用户输入,类型为整型。然后i和j调用LocateVex函数。使矩阵对应的值为权值,然后进行对称弧的定义。输出矩阵。先内循环输出横向的权值,在外循环输出竖向的权值。3.编写LocateVex函数。设ver为int型,用一个for语句实现循环,从0到顶点数,若顶点等于ver则返回第几个顶点i.4.建立main函数。Main函数直接调用CreateUDN函数。
4、("****************************************");printf("输出:");for(i=0;i5、i]==ver)returni;}//main函数intmain(){MGraphG;CreateUDN(G);return0;}运行程序:输入6个顶点和10条边,依次输入以上权值<1,2,6><1,3,1><1,4,5><2,3,5><2,5,3><3,4,5><3,5,6><3,6,4><4,6,2><5,6,6>然后输出矩阵表,可以看到其权值是对应的。程序解析:1.编写头文件,定义最大顶点个数为20个.定义权值类型为int型,顶点和弧数为int型。顶点类型为int型。2.编写函数CreateUDN。先用一个scanf获得用户的顶点数和边数输入,类型为整型。然后用一个for语句将0到6、顶点数的顶点信息输入,然后初始化邻接矩阵,用内外循环将矩阵都初始化为最大值,最大值默认为0.让其每一位的初始值都为0.然后构造邻接矩阵,用一个for函数实现邻接矩阵数据的输入,对应到行和列。用scanf获得用户输入,类型为整型。然后i和j调用LocateVex函数。使矩阵对应的值为权值,然后进行对称弧的定义。输出矩阵。先内循环输出横向的权值,在外循环输出竖向的权值。3.编写LocateVex函数。设ver为int型,用一个for语句实现循环,从0到顶点数,若顶点等于ver则返回第几个顶点i.4.建立main函数。Main函数直接调用CreateUDN函数。
5、i]==ver)returni;}//main函数intmain(){MGraphG;CreateUDN(G);return0;}运行程序:输入6个顶点和10条边,依次输入以上权值<1,2,6><1,3,1><1,4,5><2,3,5><2,5,3><3,4,5><3,5,6><3,6,4><4,6,2><5,6,6>然后输出矩阵表,可以看到其权值是对应的。程序解析:1.编写头文件,定义最大顶点个数为20个.定义权值类型为int型,顶点和弧数为int型。顶点类型为int型。2.编写函数CreateUDN。先用一个scanf获得用户的顶点数和边数输入,类型为整型。然后用一个for语句将0到
6、顶点数的顶点信息输入,然后初始化邻接矩阵,用内外循环将矩阵都初始化为最大值,最大值默认为0.让其每一位的初始值都为0.然后构造邻接矩阵,用一个for函数实现邻接矩阵数据的输入,对应到行和列。用scanf获得用户输入,类型为整型。然后i和j调用LocateVex函数。使矩阵对应的值为权值,然后进行对称弧的定义。输出矩阵。先内循环输出横向的权值,在外循环输出竖向的权值。3.编写LocateVex函数。设ver为int型,用一个for语句实现循环,从0到顶点数,若顶点等于ver则返回第几个顶点i.4.建立main函数。Main函数直接调用CreateUDN函数。
此文档下载收益归作者所有