图的基本操作 实验报告
10页1、实验五 图的基本操作一、实验目的一、实验目的1、使学生可以巩固所学的有关图的基本知识。2、熟练掌握图的存储结构。3、熟练掌握图的两种遍历算法。 二、实验内容二、实验内容 问题描述问题描述 对给定图,实现图的深度优先遍历和广度优先遍历。 基本要求基本要求 以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列。【测试数据测试数据】由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作三、实验前的准备工作1、掌握图的相关概念。2、掌握图的逻辑结构和存储结构。3、掌握图的两种遍历算法的实现。 四、实验报告要求四、实验报告要求1、实验报告要按照实验报告格式规范书写。2、实验上要写出多批测试数据的运行结果。3、结合运行结果,对程序进行分析。五、算法设计五、算法设计1、程序所需头文件已经预处理宏定义和结构体定义如下 #include #define MaxVerNum 100 struct edgenode int endver; int inform; edgenode* edgenext; ; struct vexnode c
2、har vertex; edgenode* edgelink; ; struct Graph vexnode adjlistsMaxVerNum; int vexnum; int arcnum; ; 2、创建无向图 void CreatAdjList(Graph* G) int i,j,k; edgenode* p1; edgenode* p2; coutG-vexnumG-arcnum; coutvexnum;i+) cinG-adjlistsi.vertex; G-adjlistsi.edgelink=NULL; coutarcnum;k+) cout对应的顶点:“; cinij; p1=new edgenode; p1-endver=j; p1-edgenext=G-adjlistsi.edgelink; G-adjlistsi.edgelink=p1;p2=new edgenode; p2-endver=i; p2-edgenext=G-adjlistsj.edgelink; G-adjlistsj.edgelink=p2; /因为是无向图,所以有两次建立边表的过程 3、深度优
3、先遍历 void DFS(Graph *G,int i,int visit) coutadjlistsi.vertexadjlistsi.edgelink; if(G-adjlistsi.edgelink void DFStraversal(Graph *G,char c)/深度优先遍历 coutvexnum;i+) visiti=0;/全部初始化为 0,即未访问状态 int m; for (i=0;ivexnum;i+) if (G-adjlistsi.vertex=c)/根据字符查找序号 m=i; DFS(G,i,visit); break; /继续访问未被访问的结点 for(i=0;ivexnum;i+) if(visiti=0) DFS(G,i,visit); coutfront=Q-rear=NULL; EnQueue(Q,v); while(Q-rear!=NULL) int e=0; DeQueue(Q, coutadjlistse.vertexadjlistse.edgelink; if(p) int m=p-endver; if(m=0) EnQueue(Q,m);
《图的基本操作 实验报告》由会员woxinch****an2018分享,可在线阅读,更多相关《图的基本操作 实验报告》请在金锄头文库上搜索。
力学-9 变形、裂缝宽度验算与耐久性设计-6学时3
消防安全-完成
概述(管理会计)
大气污染及其防治最新课件
仓储和仓储管理概述
WTO体制与国际服务贸易B
汽车照明信号报警装置[课件]
基本数据类型(1)
2012年森建教育二建高唱《法规》课上PPT1
七年级生物生态系统的组成
学习情境四新型自动变速器控制系统结构与工作原理
当今世界环境问题1最新课件
光学-,几何光学(选讲)课件
广告法律制度(1)
回顾历史展望未来-浙江片区广本售后协会20071129
高中语文-《雷雨》课件定(1)
《现代物流技术与实务》课件第三章 装卸货物搬运技术
打印机及扫描仪
享受幸福的教育人生培训
跨国公司财务导论
2024-02-18 20页
2023-12-12 21页
2023-01-31 13页
2022-12-19 5页
2023-12-04 10页
2022-08-22 13页
2022-09-07 11页
2023-05-24 14页
2022-11-22 24页
2022-12-19 11页