从零开始学数据结构系列之第四章《什么是关键路径二》

文章目录


活动的最早发生事件

注意以下名词:

(1)求所有事件的最早发生时间ve();

(2)求所有事件的最迟发生时间vl();

(3)求所有活动的最早发生事件e();

(4)求所有活动的最迟发生时间l();

(5)求所有活动的时间余量d();

那事件就是我们的顶点,那活动的话就是我们的权值了

事件最早/迟开始时间表:

活动的最早/最晚发生事件:


那简单来说,我们活动的最早发生事件,也就是我们权值(活动时间)的前驱,上一个节点的事件最早发生时间

  • 那首先看我们 a 1的活动的最早发生事件,那它的上个节点也就是我们的 v 一事件,那它的事件最早发生时间是0,那也就意味着我们的活动最早发生事件 a 1也是0

  • 那同理 a2也是跟我们 a 1也是一样的,那它的节点也是我们的 v 1。那所以 a2的最早发生事件是0

  • 那我们的活动时间 a3,那它的发出事件是我们的 v2。那我们看我们 v2的事件的发生最早发生时间,那它是3。那所以我们 a2的活动最早发生事件,那也就是3

  • 同理,我们 a4的发出也是我们 v2,那V4的最早活动发生事件也是3

  • 那我们 a5的话,它的发出者是我们的 v3。那我们看到 v3的事件最早发生时间是2。那所以的话我们 a5的活动最早发生事件,那也就是2

  • a6也是同理,它是由我们 v3节点进行发出的那所以我们可以看到它的活动最早发生事件,也就是2

  • a7a 8节点的话都是由 v4和 v5节点发出的,那所以我们看到 v4和 v5事件最早发生时间中可以从而得知我们的 a7a 8活动最早发生事件,那也都是6

活动的最迟发生事件

注意以下名词:

(1)求所有事件的最早发生时间ve();

(2)求所有事件的最迟发生时间vl();

(3)求所有活动的最早发生事件e();

(4)求所有活动的最迟发生时间l();

(5)求所有活动的时间余量d();

那事件就是我们的顶点,那活动的话就是我们的权值了

事件最早/迟开始时间表:

活动的最早/最晚发生事件:

那简单来说,我们活动的最迟发生事件,是由我们的事件节点减去它的活动发生的时间所得出的值,就是我们的活动最迟发生事件,同理,也是根据我们事件最迟开始时间那样子开始算,我们可以看到反序的拓扑结构来进行推导

  • 我们首先看 a8活动时间,那他本身就是1,那我们的事件是 v6,那 v6的最事件最迟开始时间是八,那八减去一等于七。那从里我们可以得出它的活动最晚发生事件那也就是七
  • 那之后再看我们的 a7节点,a7节点指向的事件也同样是 v6,v6的事件,最迟开始时间是八,那八减去二等于六。所以我们 a7的活动最晚发生事件是六
  • 我们接下来看 a6节点,它是由 v5事件最迟开始时间减去它的活动时间。那由是八减去三那是等于五,那所以我们 a6活动最迟发生事件,那也就是五
  • 那我们的 a4节点的话,它是由 v5节点的节点,最迟开始时间减去它的活动时间,也就是七减去三,那是等于四。那所以我们 a4的活动最迟发生事件,那也就是四
  • a3节点所指向的是我们 v4节点,那 v4节点事件最迟开始时间,它的值是六。那减去我们 a3节点的活动时间,那也就是六减去二,那同样也是等于四
  • a2节点所指向的事件最迟开始时间是我们的 v3节点。那 v3节点的值是二,那它的活动时间也是二。那所以相减的话,那我们可以得出 a2的活动最迟发生事件值是零
  • a 一节点所指向的事件最迟发生时间是 v2,那 v2的值是四,那四减去我们 a 一活动时间的值。那我们可以最终得出我们 a 一活动的最迟发生事件的值是1

☁️ 以上就是所有内容,对大家有用的话点个关注!感谢大家!

往期回顾

1.【第一章】《线性表与顺序表》
2.【第一章】《单链表》
3.【第一章】《单链表的介绍》
4.【第一章】《单链表的基本操作》
5.【第一章】《单链表循环》
6.【第一章】《双链表》
7.【第一章】《双链表循环》
8.【第二章】《栈》
9.【第二章】《队》
10.【第二章】《字符串暴力匹配》
11.【第二章】《字符串kmp匹配》
12.【第三章】《树的基础概念》
13.【第三章】《二叉树的存储结构》
14.【第三章】《二叉树链式结构及实现1》
15.【第三章】《二叉树链式结构及实现2》
16.【第三章】《二叉树链式结构及实现3》
17.【第三章】《二叉树链式结构及实现4》
18.【第三章】《二叉树链式结构及实现5》
19.【第三章】《中序线索二叉树理论部分》
20.【第三章】《中序线索二叉树代码初始化及创树》
21.【第三章】《中序线索二叉树线索化及总代码》
22【第三章】《先序线索二叉树理论及线索化》
23【第三章】《先序线索二叉树查找及总代码》
24【第三章】《后续线索二叉树线索化理论》
25【第三章】《后续线索二叉树总代码部分》
26【第三章】《二叉排序树基础了解》
27【第三章】《二叉排序树代码部分》
28【第三章】《二叉排序树代码部分》
29【第三章】《平衡二叉树基础概念》
30【第三章】《平衡二叉树的平衡因子》
31【第三章】《平衡二叉树的旋转基础详解》
32【第三章】《平衡二叉树的旋转类型图文详解》
33【第三章】《平衡二叉树的旋转类型总结及总代码》
34【第三章】《哈夫曼树简单了解》
35【第三章】《哈夫曼树的构造方法》
36【第三章】《哈夫曼编码构造及代码》
37【第四章】《图的定义》
38【第四章】《图的基本概念和术语》
39【第四章】《图的存储结构》
40【第四章】《图的遍历之深度优先遍历》
41【第四章】《广度优先遍历BFS》
42【第四章】《图的遍历总代码》
43【第四章】《最小生成树概念》
44【第四章】《最小生成树的应用举例》
45【第四章】《prim算法(普里姆算法)详解》
46【第四章】《prim算法(普里姆算法)详解2》
47【第四章】《prim算法(普里姆算法)详解3》
48【第四章】《prim算法(普里姆算法)讲解汇总》
49【第四章】《prim算法(普里姆算法)代码讲解》
50【第四章】《prim算法(普里姆算法)总代码》
51【第四章】《克鲁斯卡尔算法思路介绍》
52【第四章】《克鲁斯卡尔算法步骤思路1》
53【第四章】《克鲁斯卡尔算法步骤思路2》
54【第四章】《克鲁斯卡尔算法应用场景-公交站问题》
55【第四章】《克鲁斯卡尔算法判断回路问题》
56【第四章】《克鲁斯卡尔算法步骤回顾》
57【第四章】《克鲁斯卡尔算法代码初始化详解》
58【第四章】《克鲁斯卡尔算法总代码详解》
59【第四章】《了解最短路径》
60【第四章】《迪杰斯特拉算法了解》
61【第四章】《Dijkstra 迪杰斯特拉算法图解》
62【第四章】《Dijkstra 迪杰斯特拉算法总代码》
63【第四章】《弗洛伊德(floyd)算法简介》
64【第四章】《弗洛伊德算法详解》
65【第四章】《弗洛伊德代码详解》
66【第四章】《拓扑排序之AOV网》
67【第四章】《拓扑排序介绍及其方法》
68【第四章】《拓扑排序代码详解》
69【第四章】《什么是关键路径》

相关推荐
weixin_BYSJ19878 小时前
【计算机毕设】基于SpringBoot与Vue的文物保护档案管理系统08621
vue.js·spring boot·spring cloud·微服务·架构·django·课程设计
老当益壮梁奶奶8 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
小叶肥辉9 小时前
LangChain链和LangGraph图的学习笔记【三】——分别用langchain_openai库和langchain_community库调用大模型
笔记·python·langchain
xiangyun6110 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun6110 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
从零开始的嵌入式之旅10 小时前
day44
arm开发·经验分享·笔记·嵌入式硬件
OKkankan11 小时前
LangChain 能力详解!:输出解析、RAG、向量数据库与 Retriever 检索器
数据结构·python·langchain·ai应用
蓝速科技11 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
xxwxx__12 小时前
C++ AVL 树深度剖析:平衡二叉搜索树原理、源码与面试考点
数据结构·c++
Logic10112 小时前
C语言/数据结构数组题解:数字列表加一(Plus One)——进位处理与数组扩展
c语言·数据结构·模拟·数组·时间复杂度·算法题·进位