求关键路径设计报告 数据结构课程设计毕业设计(论文) .doc
《求关键路径设计报告 数据结构课程设计毕业设计(论文) .doc》由会员分享,可在线阅读,更多相关《求关键路径设计报告 数据结构课程设计毕业设计(论文) .doc(18页珍藏版)》请在三一办公上搜索。
1、数据结构课程设计题目:关键路径的设计报告科系:计算机科学与技术班级:姓名:题目:1、编写拓扑排序和求关键路径的程序2、单源顶点最短路径问题设计报告一 需求分析1. 在实际工程中拓扑排序和求关键路径是经常使用来安排任务的先后顺序,以及找出关键的路径,合理的安排非关键任务的施工顺序。2.对用邻接矩阵表示的有向图,从某一顶点出发(称为源点)到该图其它各顶点(称为终点)有无路径?最短路径是什么?路径长为多少?问题要求写一个程序从有向网中的某一顶点出发找出该顶点到其余各顶点的最短路径。对邻接矩阵costnn中的每一个元素只能有三种情况: 当i=j时,costij=0; 当顶点i和j无边时,costij=
2、; 当顶点i和j有边,且其权值为Wij时,costij=Wij。由于题目中没有规定输出格式,此程序以顶点序号的形式将最短路径输出到终端上去,并输出该最短路径的长度。二 概要设计1.1抽象数据类型图的定义如下:ADT Graph数据对象V:V是具有相同特性的数据元素的集合,称为顶点集.数据对象I:I是具有相同特性的数据元素的集合,称为顶点集.数据关系R: R=VR VR=(v,w)|v,w属于V,(v,w)表示v和w之间存在路径基本操作P: Creat_ALGraph(&G,V,VR,I) 初始条件:V是图的顶点集,VR是图中边的集合,I是边的权值。 操作结果:按V和VR的定义构造图G。 DFS
3、(&G, v) 初始条件:v是图的一个顶点,图G存在。 操作结果:从v点深度优先遍历图G。 DFSTraverse(&G) 初始条件:图G存在。 操作结果:深度优先遍历图G。 FindIngree( G,b) 初始条件:图G存在,数组b已知。 操作结果:图G的每个顶点的度放在数组b中。 TopologicalSort(&G) 初始条件:图G存在。 操作结果:对图G进行拓扑排序。 TopologicalOrder(G,&T) 初始条件:图G存在,栈T存在。 操作结果:若G无回路,则用栈T返回G的一个拓扑排序列,且函数值为OK,否则为ERROR. Criticalpath(&G) 初始条件:G存在
4、,函数TopologicalOrder(G,&T)在。 操作结果:输出图G的关键路径。ADT Graph1.2主程序Void main( ) 图的初始化; 创建一个图; 深度优先遍历图;对图进行拓扑排序;求关键路径;2.1主要算法基本思想。单源最短路径问题采用迪杰斯特拉(Dijkstra)提出的按路径长度递增的次序产生最短路径的算法。此算法把网中所有的顶点分成两组,分别用S和T表示。凡是以i0为源点,已经确定了最短路径的终点属于第一组S,S的初态应只包含i0。另一组T则是尚未确定最短路径的顶点集合。T的初态应是除源点外的网中所有顶点的集合,按各顶点与i0间的最短路径的长度递增的次序,逐个把T中
5、的顶点加入到S中,使得从i0到S中各顶点的路径长度始终不大于从i0到T中各顶点的路径长度。它的初始状态即是邻接矩阵cost中第i0列内各列的值。显然,从源点到各顶点的最短路径中最短的一条路径应为 distv=mindisti(i=1,2,n)第一次求的最短路径长度必然是(i0,v),这时顶点号v应从T中删除而并入S。每当选出一个顶点号v并使之并入S后,就要修改T中各顶点的最短路径长度dist。对于T中的某一个顶点i来说,其最短路径长度或者仍是(i0,i),或者是(i0,v,i),决不可能有其它选择,也就是说,若distv+costviG.vernum; /输入顶点数cinG.arcnum; /
6、输入边数 for(int i=0;iG.vernum;+i)G.verticesi.data=i;G.verticesi.firstarc=NULL; /顶点初始化Arcnode *p; /定义一个结点指针pfor(int j=0;jvwu; /输入带权的边p=new Arcnode;p-adjvex=w;p-info=u;p-nextarc=G.verticesv.firstarc;G.verticesv.firstarc=p;/Creat_ALGraphvoid Inist_stack(Sqstack &S) /初始化栈S.base=new int(MAX); /为栈分配一个MAX大的空间
7、S.top=S.base; /栈顶等于栈底S.stacksize=MAX; /栈的大小/Inist_stackint StackEmpty(Sqstack &S) /判断栈是否为空if(S.base=S.top) /栈顶等于栈底,则为空,返回0;return 0;elsereturn 1; /否则返回1;/StackEmptyvoid push(Sqstack &S,int a) /把元素a放入栈if(S.top-S.baseS.stacksize) /栈没有满*S.top=a;+S.top;else /栈已满在分配空间*S.top=a;+S.top;/pushint pop(Sqstack
8、&S) /返回栈顶的值if(S.top!=S.base) /栈不为空-S.top;return *S.top;/popvoid DFS(ALGraph &G,int v) /从第v个顶点出发递归地深度优先遍历图Gvisitedv=1; /已被访问coutvnextarc)int u;u=q-adjvex;if(!visitedu)DFS(G,u);/DFSvoid DFSTraverse(ALGraph &G) /深度优先遍历图Gfor(int i1=0;i1G.vernum;+i1)visitedi1=0; /把所有顶点表示成未访问for(int j1=0;j1G.vernum;+j1)if
9、(!visitedj1)DFS(G,j1); /没有访问就调用函数DFS/DFSTraversevoid FindIngree(ALGraph G,int b20) /计算图中每个顶点的入度for(int j=0;j20;+j)bj=0; /把数组全部置零for(int i=0;inextarc)+bp-adjvex; /各点入度加一/FindIngreevoid TopologicalSort(ALGraph &G) /对图G 进行拓扑排序int indegreeMAX;FindIngree(G,indegree); /初始化每个结点的入度Sqstack S;Inist_stack(S);
10、/初始化栈for(int j=0;jG.vernum;+j)if(!indegreej)push(S,j); /入度为零的入栈int count=0; /顶点计数while(StackEmpty(S) /栈非空int d;d=pop(S); /出栈coutdnextarc)int k;k=q-adjvex;if(!(-indegreek) push(S,k); /如果顶点入度为零则入栈coutendl;if(countG.vernum) /输出顶点数小于所有顶点数cout有环;/ TopologicalSortint veMAX,vlMAX; /分别记录各顶点的最早发生时间和最迟发生时间int
11、 TopologicalOrder(ALGraph G,Sqstack &T) /若无回路,则用栈返回的一个拓扑排序列,且函数值为,否则为;int indegreeMAX; FindIngree(G,indegree); /初始化每个结点的入度Sqstack S;Inist_stack(S); /初始化栈Inist_stack(T); for(int j=0;jG.vernum;+j)if(!indegreej)push(S,j); /把所有入度为零的顶点放入栈中int count=0; /记录顶点数for(int i=0;inextarc)int k;k=q-adjvex;if(!(-ind
12、egreek)push(S,k); /入度为零的顶点放入栈if(vee+(q-info)vek)vek=vee+(q-info); /计算各点的最早发生时间if(countG.vernum)return 0; /有回路elsereturn 1; /无回路/ TopologicalOrdervoid Criticalpath(ALGraph &G) /输出图G的关键路径Sqstack T;if(!TopologicalOrder(G,T)couterrorendl; /判断图是否有环for(int i=0;inextarc)int k=p-adjvex;int dut=p-info;if(vlk
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 求关键路径设计报告 数据结构课程设计毕业设计论文 关键 路径 设计 报告 数据结构 课程设计 毕业设计 论文

链接地址:https://www.31ppt.com/p-4028104.html