已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告(2015/2016学年第二学期)课程名称数据结构A实验名称图的基本运算及飞机换乘次数最少问题实验时间2016年5月19日指导单位计算机科学与技术系指导教师骆健学生姓名班级学号学院系管理学院专业信息管理与信息系统实习题名图的基本运算班级姓名学号日期20160519一、问题描述验证教材中关于在邻接矩阵和邻接表两种不同的储存结构上实现图的基本运算的算法见程序91程序98,在邻接矩阵存储结构上实现图的深度和广度优先遍历算法,设计主函数,测试上述运算。二、概要设计文件GRAPHCPP中在该文件中定义图数据结构的抽象模板类GRAPH。邻接矩阵类MGRAPH是从抽象类GRAPH派生得来,邻接表类LGRAPH也是从抽象类GRAPH派生得来。主函数的代码如图所示。三、详细设计1类和类的层次设计程序定义了GRAPH类,以及邻接矩阵类MGRAPH和邻接表类LGRAPH以及循环列表类SEQQUEUE。邻接矩阵类MGRAPH继承了GRAPH的数据成员N和E,重载了GRAPH的纯虚函数。保护数据成员TA指向动态生成的二维数组,用以存储邻接矩阵。邻接表类LGRAPH也继承了GRAPH的数据成员N和E及重载了GRAPH的纯虚函数,边结点由类ENODE定义,每个结点有三个域ADJVEX、W和NEXTARC。邻接表的表头组成为一维数组,A是指向该数组的指针。SEQQUEUEINTFRONT,REARINTMAXSIZEBTNODEQSEQQUEUEINTMSIZESEQQUEUEDELETEQBOOLISEMPTYCONSTRETURNFRONTREARBOOLISFULLCONSTRETURNREAR1MAXSIZEFRONTBOOLFRONTBTNODEBOOLENQUEUEBTNODEXBOOLDEQUEUEVOIDCLEARFRONTREAR0(A)循环队列类MGRAPHTATNOEDGEVOIDDFSINTV,BOOLVISITEDVOIDBFSINTV,BOOLVISITEDMGRAPHINTMSIZE,CONSTTMGRAPHRESULTCODEINSERTINTU,INTV,TRESULTCODEREMOVEINTU,INTVBOOLEXISTINTU,INTVCONSTVOIDDFSVOIDBFSTLGRAPHENODEALGRAPHINTMSIZELGRAPHRESULTCODEINSERTINTU,INTV,TRESULTCODEREMOVEINTU,INTVBOOLEXISTINTU,INTVCONSTTGRAPHINTN,EVIRTUALRESULTCODEINSERTINTU,INTV,TVIRTUALRESULTCODEREMOVEINTU,INTV0VIRTUALBOOLEXISTINTU,INTVCONST0T(B)模版类GRAPH,MGRAPH和LGRAPHT2核心算法深度优先搜索用栈来实现1把根节点压入栈中2每次从栈中弹出一个元素,搜索所有在它下一级的元素,把这些元素压入栈中。并把这个元素记为它下一级元素的前驱3找到所要找的元素时结束程序4如果遍历整个树还没有找到,结束程序广度优先搜索使用队列来实现1把根节点放到队列的末尾2每次从队列的头部取出一个元素,查看这个元素所有的下一级元素,把它们放到队列的末尾。并把这个元素记为它下一级元素的前驱3找到所要找的元素时结束程序4如果遍历整个树还没有找到,结束程序DFSBFS四、程序代码TEMPLATEVOIDMGRAPHDFS/深度遍历BOOLVISITEDNEWBOOLNFORINTI0IVOIDMGRAPHDFSINTV,BOOLVISITEDVISITEDVTRUECOUTVOIDMGRAPHBFS/广度遍历BOOLVISITEDNEWBOOLNFORINTI0IVOIDMGRAPHBFSINTV,BOOLVISITEDSEQQUEUEQNVISITEDVTRUECOUTVOIDMGRAPHDIJKSTRAINTV,TD,INTPATH/迪杰斯特拉算法INTI,K,WIFVN1THROWOUTOFBOUNDSBOOLSNEWBOOLNFORI0ICONSTINTINFTY2147483640ENUMRESULTCODEUNDERFLOW,DUPLICATE,FAILURE,SUCCESS,NOTPRESENTTEMPLATECLASSGRAPH/抽象类PUBLICVIRTUALRESULTCODEINSERTINTU,INTV,TVIRTUALRESULTCODEREMOVEINTU,INTV0VIRTUALBOOLEXISTINTU,INTVCONST0PROTECTEDINTN,ETEMPLATE/循环队列类CLASSSEQQUEUEPUBLICSEQQUEUEINTMSIZESEQQUEUEDELETEQBOOLISEMPTYCONSTRETURNFRONTREARBOOLISFULLCONSTRETURNREAR1MAXSIZEFRONTBOOLFRONTTBOOLENQUEUETXBOOLDEQUEUEVOIDCLEARFRONTREAR0PRIVATEINTFRONT,REARINTMAXSIZETQTEMPLATESEQQUEUESEQQUEUEINTMSIZE/构造函数MAXSIZEMSIZEQNEWTMAXSIZEFRONTREAR0TEMPLATEBOOLSEQQUEUEFRONTTXQFRONT1MAXSIZERETURNTRUETEMPLATEBOOLSEQQUEUEENQUEUETX/在队尾插入XIFISFULLCOUTBOOLSEQQUEUEDEQUEUE/删除队头元素IFISEMPTYCOUTCLASSMGRAPHPUBLICGRAPH/邻接矩阵类PUBLICMGRAPHINTMSIZE,CONSTTMGRAPHRESULTCODEINSERTINTU,INTV,TRESULTCODEREMOVEINTU,INTVBOOLEXISTINTU,INTVCONSTVOIDDFSVOIDBFSPROTECTEDTATNOEDGEVOIDDFSINTV,BOOLVISITEDVOIDBFSINTV,BOOLVISITEDTEMPLATEMGRAPHMGRAPHINTMSIZE,CONSTTE0NOEDGENOEDGANEWTNFORINTI0IMGRAPHMGRAPH/析构函数FORINTI0IRESULTCODEMGRAPHINSERTINTU,INTV,TIFAUVNOEDGERETURNDUPLICATEAUVWERETURNSUCCESSTEMPLATERESULTCODEMGRAPHREMOVEINTU,INTV/删除函数IFUN1|VN1|UVRETURNFAILUREIFAUVNOEDGERETURNNOTPRESENTAUVNOEDGEERETURNSUCCESSTEMPLATEBOOLMGRAPHEXISTINTU,INTVCONST/判断边是否存在IFUN1|VN1|UV|AUVNOEDGERETURNFALSERETURNTRUETEMPLATEVOIDMGRAPHDFS/深度遍历BOOLVISITEDNEWBOOLNFORINTI0IVOIDMGRAPHDFSINTV,BOOLVISITEDVISITEDVTRUECOUTVOIDMGRAPHBFS/广度遍历BOOLVISITEDNEWBOOLNFORINTI0IVOIDMGRAPHBFSINTV,BOOLVISITEDSEQQUEUEQNVISITEDVTRUECOUT/结点类CLASSENODEPUBLICENODENEXTARCNULLENODEINTVERTEX,TWEIGHT,ENODENEXTADJVEXVERTEXWWEIGHTNEXTARCNEXTINTADJVEXTWENODENEXTARCTEMPLATECLASSLGRAPHPUBLICGRAPH/邻接表类PUBLICLGRAPHINTMSIZELGRAPHRESULTCODEINSERTINTU,INTV,TRESULTCODEREMOVEINTU,INTVBOOLEXISTINTU,INTVCONSTPROTECTEDENODEATEMPLATELGRAPHLGRAPHINTMSIZE/构造函数NMSIZEE0ANEWENODENFORINTI0ILGRAPHLGRAPH/析构ENODEP,QFORINTI0INEXTARCDELETEQQPDELETEATEMPLATEBOOLLGRAPHEXISTINTU,INTVCONST/判断边是否存在IFUN1|VN1|UVRETURNFALSEENODEPAUWHILEPIFPRETURNFALSEELSERETURNTRUETEMPLATERESULTCODELGRAPHINSERTINTU,INTV,TIFEXISTU,VRETURNDUPLICATEENODEPNEWENODEV,W,AUAUPERETURNSUCCESSTEMPLATERESULTCODELGRAPHREMOVEINTU,INTV/删除IFUN1|VN1|UVRETURNFAILUREENODEPAU,QQNULLWHILEPPPNEXTARCIFPRETURNNOTPRESENTIFQQNEXTARCPNEXTARCELSEAUPNEXTARCDELETEPERETURNSUCCESSINTMAIN/主函数INTN,GCOUTNMGRAPHAN,INFTYLGRAPHBNCOUTGINTANEWINTGINTBNEWINTGINTWNEWINTGFORINTI0IAIBIWIAINSERTAI,BI,WIBINSERTAI,BI,WICOUTCDIFAEXISTC,DCOUTEFIFAREMOVEE,FSUCCESSCOUTINCLUDECONSTINTINF2147483647ENUMRESULTCODEUNDERFLOW,DUPLICATE,FAILURE,SUCCESS,NOTPRESENT,OUTOFBOUNDSTEMPLATECLASSGRAPH/抽象类PUBLICVIRTUALRESULTCODEINSERTINTU,INTV,TW0VIRTUALRESULTCODEREMOVEINTU,INTV0VIRTUALBOOLEXISTINTU,INTVCONST0PROTECTEDINTN,ETEMPLATECLASSMGRAPHPUBLICGRAPH/邻接矩阵类PUBLICMGRAPHINTMSIZE,CONSTTNOEDGMGRAPHRESULTCODEINSERTINTU,INTV,TWRESULTCODEREMOVEINTU,INTVBOOLEXISTINTU,INTVCONSTINTCHOOSEINTD,BOOLSVOIDDIJKSTRAINTV,TD,INTPATHPROTECTEDTATNOEDGETEMPLATEMGRAPHMGRAPHINTMSIZE,CONSTTNOEDGNMSIZEE0NOEDGENOEDGANEWTNFORINTI0IMGRAPHMGRAPHFORINTI0IRESULTCODEMGRAPHINSERTINTU,INTV,TWIFUN1|VN1|UVRETURNFAILUREIFAUVNOEDGERETURNDUPLICATEAUVWERETURNSUCCESSTEMPLATERESULTCODEMGRAPHREMOVEINTU,INTVIFUN1|VN1|UVRETURNFAILUREIFAUVNOEDGERETURNNOTPRESENTAUVNOEDGEERETURNSUCCESSTEMPLATEBOOLMGRAPHEXISTINTU,INTVCONSTIFUN1|VN1|UV|AUVNOEDGERETURNFALSERETURNTRUETEMPLATEINTMGRAPHCHOOSEINTD,BOOLS/求最小DIINTI,MINPOSTMINMININFMINPOS1FOR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《极压锂基润滑脂》
- 保险业务合规与风险管理专项训练题库
- 保险行业保险客户服务与风险管理知识点巩固习题
- 保险理赔员资格考试理赔实务操作与技巧模拟试题
- 内蒙古住房和城乡建设领域2026年施工现场专业人员测试(市政工程施工员)复习题及答案
- 通风调度员考试题及答案
- 山东统计专业技术中级资格考试(统计工作实务)模拟测试卷及答案(2026年)
- 2026年医保知识竞赛题库及答案(医保目录解读与医疗政策试题)
- 民事诉讼法试题及答案
- 2026年种子法知识考试试题及答案
- GB 48145-2026井工煤矿机电设备完好性要求
- 2026年安徽公务员行测真题试卷附答案
- 交管12123学法减分题库500题(含标准答案+解析2026全国完整版)
- 化学检验员(技师)职业鉴定理论考试题库(浓缩400题)
- 2026年国企校招时事政治试题及答案
- 雨课堂学堂在线学堂云《人工智能与创新(南开)》单元测试考核答案
- 公共卫生保密制度
- “绿色腾飞系列报告”(II)-中国可持续航空燃料中长期发展的关键问题与建议
- 专利可行性分析报告
- 2024年越南轻质和重质碳酸钙行业现状及前景分析2024-2030
- (正式版)QBT 4702-2024 稀土厚膜电路电热元件
评论
0/150
提交评论