拓扑排序

拓扑排序是对有向无环图(DAG)的顶点进行线性排序,使得对于图中每条边UV,均有U在排序序列之前出现。本文介绍了拓扑排序的基本概念、算法思想、执行过程、特点以及代码实现。特别指出,拓扑排序的结果可能不唯一,且在无环图中可通过DFS得到逆向的拓扑排序序列。
摘要由CSDN通过智能技术生成

拓扑排序

文章目录

  • 基本概念
  • 算法思想
  • 算法的执行过程
  • 拓扑排序的特点
  • 算法的代码实现

1.基本概念

首先掌握拓扑排序之前先要了解几个基本概念:
在这里插入图片描述
这里AOV网即是一种以顶点表示活动,以边表示活动先后次序的且没有回路的有向图。

2.算法思想

拓扑排序就是将一个有向无环图中的所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若存在由u到v的路径,则在拓扑排序序列中一定是u出现在v的前边。
在这里插入图片描述
可能直接看算法思想有点理解不来,下面给出具体执行过程:

3.算法执行过程

1.首先初始化一个数组,数组内存放图中所有顶点的入度,(目的是为了更好的找到入度为0的结点)。
2.找到入度为0的顶点,在数组内找到0结点。

在这里插入图片描述3.删除从该顶点发出的全部边,并且更改数组内的各顶点的入度值。如下图所示:

在这里插入图片描述之后重复以上步骤,依次找到入度为0的顶点并删除其顶点发出的全部边。
此时1顶点入度为0,删除1顶点发出的全部边并更改数组内的个顶点的入度值
在这里插入图片描述此时顶点2的入度为0ÿ

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值