资源描述:
《邻接矩阵邻接表等存储结构的相关算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、〔据结构与算法》实验报告姓名学号1367159107班级实验日期第14周(星期二)12月2日第7、8节项B号、实验名称5、图的存储结构算法实验要求(ffi课教师提ft)1、该实验耍求掌握邻接矩阵、邻接表等存储结构的相关算法;2、验证性实验要求在实验前认真研读相关教材,作好充分的预习准备工作,写出实验预习报告;3、学生必须在规定时间内独立完成,对实验过程中出现的问题,要求尽量做到独立思考,独立解决;4、每次实验的结果必须经过教师认可后,实验方可结束;5、要求学生必须认真对待每一个实验,不得缺席、迟到、早退;6、要求实验
2、屮认真做好实验记泶,实验后认真完成实验报告;邻接矩阵的存储法主程序如下:々include#include〈stdlib.h〉#include#defineINFINITYINT_MAX#defineMAX—VERTEX—NUM20#defineMAXQSIZE10//最大队列长度#defineFALSE0#defineTRUE1typedefintVRType;typedefintInfoType;typedefcharVertexType;typedefintStatus;
3、typedefintQElemType;typedefstruct{QElemType*base;intfront;intrear;}SqQueue;typedefstructArcCell{VRTypeadj;InfoType*info;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{VertexTypevexs[MAX_VERTEX_NUM];AdjMatrixarcs;intvexnum,arcnum;JMGraph;boolvi
4、sited[MAX_VERTEX_NUM];Status(*VisitFunc)(intv);intw;voidCreateGraph(MGraph&G);//邻接矩阵创建图voidBFSTraverse(MGraphG,Status(*Visit)(intv));//邻接矩阵的广度遍历voidDFSTraverse(MGraphG,Status(*Visit)(intv));//邻接矩阵的深度遍历voidDFS(MGraphG,intv);StatusprintGraph(intv);intFirstAdjVex(
5、MGraphG,intv);//返回图G屮顶点v的第一个邻接点。若不存在邻接点,则返冋0。intNextAdjVex(MGraphG,intv,intw);//返回图G中顶点v的邻接点中处于w之后的那个邻接点,若不存在这样的邻接点,则返lH]0。StatusInitQueue(SqQueue&);StatusEnQueue(SqQueue&,QElemType);StatusDeQueue(SqQueue&,QElemType&);StatusQueueEmpty(SqQueue);voidmain(void){in
6、ti,j;MGraphG;{//创建图的邻接矩阵cout«"开始创建图的邻接矩阵......n«endl;CreateGraph(G);}{//邻接矩阵的广度遍历代码块cOut«”邻接矩阵的广度遍历......H«endl;voidBFSTraverse(MGraphG,Status(*Visit)(intv));//邻接矩阵的广度遍历voidDFSTraverse(MGraphG,Status(*Visit)(intv));//邻接矩阵的深度遍历voidDFS(MGraphG,intv);StatusprintGr
7、aph(intv);intFirstAdjVex(MGraphG,intv);//返回图G屮顶点v的第一个邻接点。若不存在邻接点,则返冋0。intNextAdjVex(MGraphG,intv,intw);//返回图G中顶点v的邻接点中处于w之后的那个邻接点,若不存在这样的邻接点,则返lH]0。StatusInitQueue(SqQueue&);StatusEnQueue(SqQueue&,QElemType);StatusDeQueue(SqQueue&,QElemType&);StatusQueueEmpty(S
8、qQueue);voidmain(void){inti,j;MGraphG;{//创建图的邻接矩阵cout«"开始创建图的邻接矩阵......n«endl;CreateGraph(G);}{//邻接矩阵的广度遍历代码块cOut«”邻接矩阵的广度遍历......H«endl;for(i=0;i