实验编号: 6 四川师大《数据结构》 实验报告 2015 年 12 月 28 日计算机科学学院2014 级 4 班实验名称:实验六:图及其应用姓名:张俊学号: 2014110454 指导老师: _ 廖雪花 _ 实验成绩 :_____ 实验 六图及其应用一.实验目的及要求(1)通过完成本实验,掌握图的两种基本的存储结构(邻接矩阵、邻接表),以及图的基本算法实现(建立、遍历),并能运用图结构分析解决一些实际问题。(2)本实验训练的要点是:图的两种基本存储结构,及各种操作的算法实现(建立、遍历、图的典型应用) 。二.实验内容(1)建立无向图和有向图的邻接矩阵存储,计算顶点的度,并输出图的基本信息。(2)建立有向图的邻接表存储表示,并根据存储计算顶点的出度和入度,然后输出图的基本信息。(3)编写完整的程序实现AOV 网的拓扑排序。(4)编程求 AOE 网的关键路径。(5)编程实现单源点最短路径的Dijkstra 算法。注:(1)~( 2)必做,(3)~( 5)选做。三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)建立无向图和有向图的邻接矩阵存储,计算顶点的度,并输出图的基本信息。程序代码部分://main.cpp #include #include #include "c.h"int main() { MGraph G; Creat_MGraph(G); TD_MGraphnum(G); system( "pause" ); return 0; } //b.cpp #include #include #include "c.h"Status Creat_MGraph( MGraph &G) { int i,j; int kind; printf(" 1-建立有向图 \n" ); printf(" 2-建立无向图 \n" ); scanf_s( "%d",&kind); if (kind==1) { G.kind=1; } elseif (kind==2) { G.kind=0; } else{ printf("输入错误,请重新输入\n" ); while (kind!=1||kind!=2) { scanf_s( "%d",&kind); } } printf(" 请输入顶点数 \n" ); scanf_s( "%d",&G.vexnum); printf(" 请输入 %d个字母顶点 , 不要输入空格隔开 \n" , G.vexnum); scanf_s( "%d",&G.vexnum); for (i=0;i