资源描述:
《中南大学数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划中南大学数据结构实验报告 数据结构实验报告 班级:信安1401 姓名: 学号: 实验日期:XX年12月 实验三图的遍历 一、实验目的: 1.熟悉图的各种存储结构及构造算法; 2.熟练掌握图的两种搜索路径的遍历。 二、实验内容: 1.以邻接矩阵为存储结构,实现无向图的深度优先遍历和广度优先遍历。 2.分别输出每种遍历下的结点访问序列.从图中某个顶点出发,沿着某条搜索路径对图中每个顶点各做一次且仅做一次访问。 三、概要设计: 数据类型及函数定义
2、 定义图 typedefstruct{ intV[M];目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 intR[M][M]; intvexnum; }Graph; 创建图 voidcreatgraph(Graph*g,intn) 打印图的邻接矩阵 voidprintgraph(Graph*g) 访问顶点 voidvisitvex(Graph*g,intvex) 深度
3、递归遍历 voiddfs(Graph*g,intvex) 队列的基本操作 定义队列 typedefstruct{ intV[M]; intfront; intrear; }Queue; 判断队列是否为空 quempty(Queue*q) 入队操作 enqueue(Queue*q,inte)目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 出队操作 dequeue(Q
4、ueue*q) 广度遍历 voidBESTraverse(Graph*g) 本程序包含四个模块: 主程序模块 voidmain() {构造一个图; 打印图的邻接矩阵 进行深度优先遍历图; 进行广度优先遍历图;}; 四、详细设计: #defineM20 #include #include #include /*定义图*/ typedefstruct{ intV[M]; intR[M][M]; intvexnum; }Graph;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业
5、的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 /*创建图*/ voidcreatgraph(Graph*g,intn) {inti,j,r1,r2; g->vexnum=n; /*顶点用i表示*/ for(i=1;iV[i]=i;} /*初始化R*/ for(i=1;iR[i][j]=0;} /*输入R*/ printf("PleaseinputR(0,0END):"); scanf("%d,%d",&r1,&r2); while(r1!=0&&r2!=0) {g->R[r
6、1][r2]=1; g->R[r2][r1]=1; scanf("%d,%d",&r1,&r2);}} /*打印图的邻接矩阵*/ voidprintgraph(Graph*g) {inti,j; for(i=1;ivexnum;i++) {for(j=1;jvexnum;j++) {printf("%2d",g->R[i][j]);} printf("");}}目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保
7、从业人员的业务技能及个人素质的培训计划 /*全局变量:访问标志数组*/ intvisited[M]; /*访问顶点*/ voidvisitvex(Graph*g,intvex) {printf("%d",g->V[vex]);} /*获取第一个未被访问的邻接节点*/ intfirstadjvex(Graph*g,intvex) {intw,i; for(i=1;ivexnum;i++) {if(g->R[vex][i]==1&&visited[i]==0)