数据结构中关键路径算法的实现与应用。
摘要介绍求关键路经的算法,对于给出的事件结点网络,要求求出从起点到终点的所有路径,经分析、比较后找出长读最大的路径,从而得出求关键路径的算法,并给出计算机上机实现的源程序。
关键词关键路径最少时间。
1:引言。通常把计划、施工过程、生产流程、程序流程的都当成一个工程。
除了很小的工程外、一般都把工程分为若干个叫做“活动”的子工程。完成了这些“活动”的子工程,这个工程就可以完成了。
通常我们用有向图表示一个工程。在这种有向图中,用顶点表示活动,用有向边。
表示活动vi必须先于活动vj进行。如果在无有向环的带权有向图中用有向边表示一个工程中的各项活动(activity),用有向边上的权值表示活动的持续时间(duration),用顶点表示事件(event),则这种的有向图叫做用边表示活动的网络,简称aoe(active on edges)网络。
aoe网络在某些工程估算方面非常有用。他可以使人们了解:
(1):研究某个工程至少需要多少时间?
(2):那些活动是影响工程进度的关键?
在aoe网络中,有些活动可以并行的进行。从源点到各个顶点,以至从源点到汇点的有向路径可能不止一条。这些路径的长度也可能不同。
完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。因此,完成整个工程所需的时间取决于从源点到汇点的最长路径长度,即在这条路径上所有活动的持续时间之和。这条路径长度就叫做关键路径(critical path)。
2:设计步骤:
1: 以某一工程为蓝本,采用图的结构表示实际的工程计划的时间。
2: 调查以分析和**这个工程计划个阶段的时间。
3: 用调查的结果建立aoe网(activity on edge network),即边表示活动的网络,并用图的形式表示。
4: 用图来存储这些信息。
5: 用creategraphic();函数建立aoe图。
6: 用searchmappath();函数求出最大路径,并打印出关键路径。
7:编写**。
8: 测试。
3: 设计**:
#include<>
#include<>
#include<>
#include <>
#define projectnumber 9//10
#define plannumber 11//13
typedef struct node
int adjvex;
int dut;
struct node *next;
edgenode;
typedef struct
int projectname;
int id;
edgenode *link;
vexnode;
/vexnode graphicmap[projectnumber];
void creategraphic(vexnode* graphicmap,int projectnumber,int activenumber)
int begin,end,duttem;
edgenode *p;
for(int i=0;i
printf("某项目的开始到结束在图中的节点输入");
printf("如:3,4,9 回车表示第三节点到第四节点之间的活动用了9个单位时间");
for(int k=0;k
int searchmappath(vexnode* graphicmap,int projectnumber,int activenumber,int& totaltime)
int i,j,k,m=0;
int front=-1,rear=-1;
int* topologystack=(int*)malloc(projectnumber*sizeof(int));用来保存拓扑排列。
int* vl=(int*)malloc(projectnumber*sizeof(int));用来表示在不推迟整个工程的前提下,vj允许最迟发生的时间。
int* ve=(int*)malloc(projectnumber*sizeof(int));用来表示vj最早发生时间。
int* l=(int*)malloc(activenumber*sizeof(int));用来表示活动ai最迟完成开始时间。
int* e=(int*)malloc(activenumber*sizeof(int));表示活动最早开始时间。
edgenode *p;
totaltime=0;
for(i=0;i for(i=0;i
while(front!=rear)
if(m totaltime=ve[projectnumber-1];
for(i=0;i vl[i]=totaltime;
for(i=projectnumber-2;i>=0;i--)
i=0;printf("|起点 | 终点 | 最早开始时间 | 最迟完成时间 | 差值 | 备注 |");
for(j=0;j {
p=graphicmap[j].link;
while(p)
关键节点参考清单
序号123456789 暗挖类别明挖。关键节点名称。深基坑开挖 车站 附属工程 风井 竖井开挖马头门开挖多导洞施工扣拱开挖大断面临时支护拆除。扩大段开挖仰挖 俯挖钻爆法开挖。穿越重大风险或复杂环境。备注。降水 围护结构 地基处理等开挖准备。开口宽度小于6米的首次 开口宽度大于6米的全部。首次首段首循...
数据结构课程设计报告 关键路径
算法与数据结构 课程设计。题目 关键路径。院 系。学科专业。姓名。学号。指导教师。算法与数据结构 课程设计。题目 关键路径。院 系。学科专业。姓名。学号。指导教师。年月日。数据结构课程设计报告。摘要。关键路径是我们估算某些工程非常有用,是一种非常重要的估算一项工程所需的最短时间的依据。本文对如何求一...
实用参考雅思高分关键写作与口语
上周日,一场别具匠心的 异国风情汇 联谊活动在羊城拉开帷幕,英国领事馆的 有多年留学生活经历的 海归 人士以及来自新东方学校的资深顾问,与来自广东各大高校有出国意向的数百名年轻学子面对面交流。来宾的亲身经历和切身体会,为学生提供各种出国留学定居所需的资讯,让他们今后有更充分的准备面对将来的挑战。在刚...