电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验五 图的基本操作

8页
  • 卖家[上传人]:我***
  • 文档编号:136484934
  • 上传时间:2020-06-28
  • 文档格式:DOC
  • 文档大小:91KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、实验五 图的基本操作一、 实验目的1、 使学生可以巩固所学的有关图的基本知识。2、 熟练掌握图的存储结构。3、 熟练掌握图的两种遍历算法。二、 实验内容本次实验提供两个题目,难度相当,学生可以根据自己的情况选做,其中题目一是必做题,其他选做!题目一:图的遍历(必做)问题描述对给定图,实现图的深度优先遍历和广度优先遍历。基本要求以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列。测试数据由学生依据软件工程的测试技术自己确定。题目二:在图G中求一条从顶点i到顶点s的简单路径测试数据自行设计题目三:在图G中求一条从顶点i到顶点s且长度为K的简单路径测试数据自行设计三、 算法设计1、 主要思想:首先定义邻接表存储结构,然后创建一个空队列,进行队列的进队,出对和判空操作,然后建立邻接表,接着进行图的深度优先遍历和广度遍历,最后编写主函数。对于邻接表,是图的一种链式存储结构。在邻接表中,对图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边。每个结点由3个域组成,其中邻接点域(adjvex)指示与顶点Vi邻接的点在

      2、图中的位置,链域(nextarc)指示下一条边或弧的结点;数据域(info)存储和边或弧相关的信息。每个链表上附设一个表头结点。infonextarcadjvex表结点: firstarcdata 头结点: 对于图的深度优先遍历DFS,类似于树的先根遍历,是树的先跟遍历的推广,是一个递归算法; 对于图的广度优先遍历BFS,类似于树的层次遍历,不是递归算法。2、 本程序包含6个模块(1) 主函数void main()定义图,输出图的深度优先遍历和广度优先遍历结果;(2) 队列的构造:包括队列的初始化、进队、出对和判空,int InitQueue();int EnQueue();int DeQueue();int QueueEmpty()。(3) 邻接表的建立void GreatGraph();(4) 图的深度优先遍历void DFS();(5) 图的广度优先遍历void BFS();3、 元素类型和结点类型typedef struct ArcNodeint adjvex;struct ArcNode * nextarc;int info;ArcNode;typedef struct VN

      3、odechar date;ArcNode * firstarc;VNode,AdjListMAX_VERTEX_NUM;typedef structAdjList vertices;int vexnum,arcnum;ALGraph;typedef struct QNodechar data;struct QNode *next;QNode,*QueuePtr;typedef struct /构造一个空队列QueuePtr front; QueuePtr rear;LinkQueue;4、 主函数和其他函数清单(1) int InitQueue():初始化队列;(2) int EnQueue():进队;(3) int DeQueue():出对;(4) int QueueEmpty():队列的判空(5) void GreatGraph():建立邻接表;(6) void DFS():深度优先遍历;(7) void BFS():广度优先遍历;(8) void main():主函数。四、 调试分析算法设计欠周全,在编写输出两条边的信息的时候,不能一次性输入完毕,必须得输入两个顶点后才能接着输入

      4、下一顶点信息,比较繁琐,不够简洁,如果顶点够多的话,比较花费时间;对输入的数据有了一定的考虑,如果输入的数据不合理,也就不能正确输出;刚开始时给数据赋初值有错,以后的多注意。五、 实验结果利用课本第168页图7.13(a)图的数据进行测试六、 总结对于这次实验,心里面一直很担心,因为实验都快做完了,我还一次都没有让老师检查过,然后时间上有特别的紧张,知道要做实验了,就一遍又一遍的去看书上相关的算法,上网查询,还有问了别的同学,最后才勉勉强强的将它给弄出来了。在让老师检查的时候,特别的紧张,话都说不利索了,很开心,但是还是有很多的不足之处,还是得好好的多看书,把基础知识给弄透彻。我争取下次还把实验给做出来。七、 源程序#include#include#include#define MAX_VERTEX_NUM 20typedef struct ArcNodeint adjvex;struct ArcNode * nextarc;int info;ArcNode;typedef struct VNodechar date;ArcNode * firstarc;VNode,AdjListMA

      5、X_VERTEX_NUM;typedef structAdjList vertices;int vexnum,arcnum;ALGraph;typedef struct QNodechar data;struct QNode *next;QNode,*QueuePtr;typedef struct /构造一个空队列QueuePtr front; QueuePtr rear;LinkQueue;int InitQueue(LinkQueue &Q)Q.front =Q.rear =new QNode;if(!Q.front ) exit(-1);Q.front -next =NULL;return 0;int EnQueue(LinkQueue &Q,int e) QueuePtr p;p=new QNode;if(!p) exit(-1);p-data=e;p-next=NULL;Q.rear-next =p;Q.rear =p;return 0;int DeQueue(LinkQueue &Q,int &e)QueuePtr p;if(Q.front =Q.rear ) return

      6、 0;p=Q.front -next ;e=p-data;Q.front -next =p-next;if(Q.rear =p) Q.rear =Q.front ;free(p);return 0;int QueueEmpty(LinkQueue &Q)if(Q.front =Q.rear ) return 1;elsereturn 0;int Locatevex(ALGraph &G,char v)int k,j=0;for(k=0;kG.vexnum ;k+)if(G.vertices k.date =v)j=k;break;return j;void GreatGraph(ALGraph &G) /建立邻接表int k;char tail,head;int i,j;cout输入顶点数和弧数G.vexnum G.arcnum ; cout输入顶点信息endl;for( i=0;iG.vertices i.date ;G.vertices i.firstarc =NULL;cout输入边的信息:endl;for(k=0;kG.arcnum ;k+) cout输入两条边的信息tailh

      7、ead;j=Locatevex(G,head);i=Locatevex(G,tail);ArcNode *p=new ArcNode;p-adjvex =j;p-nextarc =G.vertices i.firstarc ;G.vertices i.firstarc =p;ArcNode *q=new ArcNode;q-adjvex =i;q-nextarc =G.vertices j.firstarc ;G.vertices j.firstarc =q;int FirstAdjVex(ALGraph G,int v)/返回v的第一个邻接顶点 if(G.verticesv.firstarc) return G.verticesv.firstarc-adjvex; else return -1;int NextAdjVex(ALGraph G,int v,int w)/返回v中相对于w的下一个邻接顶点 int flag=0; ArcNode *p; p=G.verticesv.firstarc; while(p) if(p-adjvex=w) flag=1; break; p=p-nextarc; if(flag & p-nextarc) return p-nextarc-adjvex; else return -1;/深度优先遍历int visited30;void DFS(ALGraph &G,int v)visitedv=1;coutG.verticesv.date=0;w=NextAdjVex(G,v,w)if(!visitedw) DFS(G,w);void DFSTraverse(ALGraph &G) int v; for(v=0;vG.vexnum;+v) visitedv=0; for(v=0;vG.vexnum;+v) if(!visitedv) DFS(G,v); int ( *visit)(int v);void BFS(ALGraph &G)/广度优先遍历int v; LinkQueue Q; int w;for(v=0;vG.vexnum;+v)visitedv=0;InitQueue

      《实验五 图的基本操作》由会员我***分享,可在线阅读,更多相关《实验五 图的基本操作》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 2020届中考英语备考复习-作文课件

    2020届中考英语备考复习-作文课件

  • 2019年中考英语复习-专题十五-交际运用(试卷部分)课件

    2019年中考英语复习-专题十五-交际运用(试卷部分)课件

  • 2019届二轮复习-高中英语-情态动词和虚拟语气课件

    2019届二轮复习-高中英语-情态动词和虚拟语气课件

  • 2019届一轮复习苏教版物质的跨膜运输课件

    2019届一轮复习苏教版物质的跨膜运输课件

  • 2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

    2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

  • 2021届新中考物理冲刺备考复习-力-弹力-重力课件

    2021届新中考物理冲刺备考复习-力-弹力-重力课件

  • 2019届一轮复习人教版种群的特征和数量变化课件

    2019届一轮复习人教版种群的特征和数量变化课件

  • 2020年高考地理一轮复习--等高线地形图-课件

    2020年高考地理一轮复习--等高线地形图-课件

  • 2019版高考英语一轮复习-Unit-1-Living-well课件

    2019版高考英语一轮复习-Unit-1-Living-well课件

  • 2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

    2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

  • 2019届高三第二轮复习专题二万有引力定律及其应用课件

    2019届高三第二轮复习专题二万有引力定律及其应用课件

  • 2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

    2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

  • 2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

    2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

  • 2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

    2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

  • 2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

    2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

  • 2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

    2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

  • (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

    (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

  • 2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

    2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

  • 2021人教部编版历史九年级上册习题课件:第18课美国的独立

    2021人教部编版历史九年级上册习题课件:第18课美国的独立

  • 2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

    2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

  • 点击查看更多
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.