图论杂记

1. 判断是否为有向无环图(O(|V|+|E|))

通过DFS获取所有节点的pre值(第一次访问节点N),post值(第二次[最后一次]访问节点N);通过pre值判断是否有回边(若u[]->v{},{[]}则有回边)。

2.由有向无环图获取拓扑排序(O(|V|+|E|))

方法一:不断去除源点(只有出边),所获源点序列即为拓扑排序

所有源点入队->源点N出队->源点N相邻节点M入度-1,若入度为0,则M作为新源点入队->队列空,结束;队列不空,源点继续出队

方法二:

DFS,完成(获得post值)的节点入队

3. 利用DFS在有向图中获取强连通图(O(|V|+|E|))

1. 对图进行DFS,记录post值

2. 将图的边取反

3. 对post值最大的点进行DFS,获得一个强连通分量,从图中删去这个强连通分量,重复步骤3


PS
双向队列 不需换档的放队头,需要换档的放队尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值