拓 扑 排 序

复杂度O(V+E)

指将一个有向无环图G的所有顶点排成一个线性序列,使得有向无环图G的 边集 中的任意一条边<u,v>始终满足u出现在v的前面。

如,有a、b、c、d等事情,a优先级最高,bc优先级相同,d优先级最低,表示为a→(b,c)→d,则abcd和acbd都是可行的排序。

将abcd对应图中的点,先后关系对应有向边,问题对应一个有先后关系的排序,即拓扑排序。

拓扑排序是DFS和BFS的一个应用。

点的出度和入度:
出度:以点u为起点的边的数量称为u的出度。
入度:以点u为终点的边的数量称为u的入度。
入度为0,是起点,排在最前面,无前驱,优先度最高。
出度为0,是终点,排在最后面,无后继,优先度最低。

无解的判断:
队列已空,但是还有点未进入队列,那么这些点的入度都不是0,说明图不是DAG(也就是 Directed Acyclic Graph 有向无环图),不存在拓扑排序。

1270
代码:
不会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值