资源描述:
《数据结构实验七 图及图的操作实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告七图及图的操作实验班级:2010XXX姓名:HoogLe学号:2010XXXX专业:XXXX2858505197@qq.com一、实验目的:1、掌握图的基本概念和术语2、掌握图的存储结构及创建算法。3、掌握图的遍历算法(递归算法)。二、实验内容:1、图邻接矩阵存储结构表示及基本操作算法实现[实现提示](同时可参见教材及ppt上的算法)函数、类名称等可自定义,部分变量请加上学号后3位。也可自行对类中所定义的操作进行扩展。所加载的库函数或常量定义及类的定义:(1)邻接矩阵存储结构类定义:自定义如下:#includeusingnamespacestd;c
2、onstintMaxSize=12;constintINFINITY=65535;templateclassMgraph{public:Mgraph(Ta[],intn,inte);//构造函数,a[]表示节点数组,n表示顶点个数,e表示边数voidprintGraph();//输出voidBFS(intv,intvisited[]);//广度优先搜索private:Tvertex[MaxSize];intarc[MaxSize][MaxSize];intvertexNum,arcNum;voidcreateUG(Ta[],intn,inte);//无向图vo
3、idcreateUW(Ta[],intn,inte);//无向网voidcreateHG(Ta[],intn,inte);//有向图voidcreateHW(Ta[],intn,inte);//有向网};templateMgraph::Mgraph(Ta[],intn,inte){intkind;cout<<"请输入所需创建的图的类型:"<>kind;switch(kind){
4、case1:createUG(a,n,e);break;case2:createUW(a,n,e);break;case3:createHG(a,n,e);break;case4:createHW(a,n,e);break;default:cout<<"输入错误!"<voidMgraph::createUG(Ta[],intn,inte){//创建无向图vertexNum=n;//顶点数arcNum=e;//边数inti,j,k;for(i=0;i5、vertex[i]=a[i];for(i=0;i>i>>j;//边依附的两个顶点的序号arc[i-1][j-1]=1;//置有边标志arc[j-1][i-1]=1;}}创建无向网邻接矩阵算法:无向网的创建:templatevoidMgraph::createUW(Ta[
6、],intn,inte){//创建无向网intw;//权值vertexNum=n;//顶点数arcNum=e;//边数inti,j,k;for(i=0;i>i>>j>>w;//边依附的两个顶点的序
7、号arc[i-1][j-1]=w;//置有边标志arc[j-1][i-1]=w;}}创建有向图邻接矩阵算法:templatevoidMgraph::createHG(Ta[],intn,inte){//创建无向图vertexNum=n;//顶点数arcNum=e;//边数inti,j,k;for(i=0;i