数据结构-图的应用算法

本文介绍了图论中的重要算法,包括Prim和Kruskal两种最小生成树算法,Dijkstra与Floyd两种解决最短路径问题的方法,以及有向无环图的描述表达式、拓扑排序和关键路径的概念及其算法步骤。这些是计算机科学中解决网络优化问题的基础工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、最小生成树

最小生成树两种算法

1.1 Prim算法

算法步骤:
步骤一:树T初始状态为空;
步骤二:从图中任意选取一个点加入T;
步骤三:从图中找出能与T形成树的所有边,将代价最小的边加入T,形成新的树T;
步骤四:检查T中边的条数;
步骤五:如果条数小于n-1,返回步骤三,否则程序结束,T为最小代价生成树。

示例:
参考上述连接

1.2 Kruskal算法

算法步骤:
(1)将图G看做一个森林,每个顶点为一棵独立的树
(2)将所有的边加入集合S,即一开始S = E
(3)从S中拿出一条最短的边(u,v),如果(u,v)不在同一棵树内,则连接u,v合并这两棵树,同时将(u,v)加入生成树的边集E’
(4)重复(3)直到所有点属于同一棵树,边集E’就是一棵最小生成树

示例:
在这里插入图片描述

二、最短路径

2.1 Dijkstra算法

算法步骤:

示例:

2.2 Floyd算法

算法步骤:

示例:

三、有向无环图描述表达式

有向无环图描述表达式

算法步骤:
1)把各个操作数不重复地排成一排

2)标出各个运算符的生效顺序(先后顺序优点出入无所谓,比如先算左边括号或者先算右边括号,当然是同级的情况)

3)按顺序加入运算符,不同的运算级别层次不同,过程中如果已经存在某部分,则直接用

4)最后生成的图就是有向无环图

示例:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、拓扑排序

参考
算法步骤:
① 输入AOV网络。令 n 为顶点个数。

② 在AOV网络中选一个入度为0的结点, 并输出之;(关键步)

③ 从图中删去该顶点, 同时删去所有它发出的有向 边;

④ 重复以上 ②、③步, 直到下面的情况之一出现: (1)全部顶点均已输出,拓扑有序序列形成,拓 扑排序完成; (2)图中还有未输出的顶点, 但已没有入度为0的 结点(说明网络中必存在有向环)。

示例:
在这里插入图片描述

五、关键路径

关键路径参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值