武汉纺织大学《数据结构》实验报告3.doc

武汉纺织大学《数据结构》实验报告3.doc

ID:56774037

大小:459.00 KB

页数:23页

时间:2020-07-08

武汉纺织大学《数据结构》实验报告3.doc_第1页
武汉纺织大学《数据结构》实验报告3.doc_第2页
武汉纺织大学《数据结构》实验报告3.doc_第3页
武汉纺织大学《数据结构》实验报告3.doc_第4页
武汉纺织大学《数据结构》实验报告3.doc_第5页
资源描述:

《武汉纺织大学《数据结构》实验报告3.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、武汉纺织大学《数据结构》实验报告班级:管工类专业班姓名:序号:实验时间:2014年5月16日指导教师:实验三:图的基本操作与应用一、实验目的:1、掌握图的几种主要存储方法及基本操作2、掌握图的两种遍历方法3、掌握利用普里姆算法和克鲁斯卡尔算法求取最小生成树的方法4、掌握求取AOE网关键路径的方法,以实现项目时间管理二、实验内容:1、编写程序,输出图的邻接矩阵,输出两种遍历序列,并求出最小生成树。实验步骤:①、在Java语言编辑环境中新建程序,输入顶点集合和边集合,构造一个图7-15所示的带权图,可参考书本225页示例程序;②、对该

2、带权图,进行插入顶点、插入边、删除顶点、删除边操作,并输出操作后的邻接矩阵,可参考书本226-228页示例程序;③、输出从顶点'A'开始的深度优先遍历和广度优先遍历的序列,可参考书本238、240页示例程序;④、输出运用普里姆算法求出的最小生成树,可参考书本245页示例程序。2、设计一个程序求出完成整项工程至少需要多少时间以及整项工程中的关键活动。实验步骤:①、在Java语言编辑环境中新建程序,输入如下图所示的AOE网;②、按照关键路径求取步骤,求出各个顶点的最早开始时间和最迟开始时间;③、求出各个活动的最早开始时间和最迟开始时间

3、;④、找出该AOE网的关键路径,并计算出该项目的完成时间。关键路径相关时间知识点:设活动ai由弧(即从顶点j到k)表示,其持续时间记为dut(),则:e(i)=ve(j)l(i)=vl(k)-dut()求ve(i)和vl(j)分两步:(1).从ve(1)=0开始向前递推ve(j)=Max{ve(i)+dut()}∈T,2<=j<=n,其中,T是所有以j为弧头的弧的集合。(2).从vl(n)=ve(n)开始向后递推vl(i)=Min{vl(j)-dut()}∈S,

4、1<=i<=n-1,其中,S是所有以i为弧尾的弧的集合。求关键路径的算法:①、输入e条弧,建立AOE网的存储结构;②、从起始点出发,令ve[0]=0,按拓扑顺序求其余各顶点的最早发生时间ve[i](1<=i<=n-1)。如果得到的拓扑有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止,否则转到步骤③;③、从终结点vn出发,令vl[n-1]=ve[n-1],按逆拓扑顺序求其余各顶点的最迟发生时间vl[i](n-2>=i>=0);④、根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟

5、开始时间l(s)。若某弧满足条件e(s)=l(s),则为关键活动。三、操作步骤:Test1代码:Graph1.javapackageFrist;publicclassGraph1{publicstaticvoidmain(String[]args){String[]vertices={"A","B","C","D","E"};Edgeedges[]={newEdge(0,1,5),newEdge(0,3,2),newEdge(1,0,5),newEdge(1,2,7),newEdge(1,3,6),newEdge(2,1,7),n

6、ewEdge(2,3,8),newEdge(2,4,3),newEdge(3,0,2),newEdge(3,1,6),newEdge(3,2,8),newEdge(3,4,9),newEdge(4,2,3),newEdge(4,3,9)};AdjMatrixGraphgraph=newAdjMatrixGraph(vertices,edges);System.out.println("带权无向图,"+graph.toString());System.out.println("插入顶点F,插入边(A,

7、F,20),删除顶点C,删除边(D,E)");inti=graph.insertVertex("F");graph.insertEdge(0,i,20);graph.insertEdge(i,0,20);graph.removeVertex(2);graph.removeEdge(2,3);graph.removeEdge(3,2);System.out.println(graph.toString());AdjMatrixGraphgraph1=newAdjMatrixGraph(vertices

8、,edges);System.out.print("深度优先遍历序列为:");graph1.DFSTraverse(0);System.out.print("广度优先遍历序列为:");graph1.BFSTraverse(0);AdjMatrixG

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。