拓扑排序

定义

对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。

拓扑排序思想

在一个有向图中找一个拓扑序列的过程称为拓扑排序

  1. 从有向图中找一个没有前驱,即入度为0的顶点,输出这个顶点的编号。

  2. 从图中删去这个顶点,并且删除从该顶点出发的所有有向边。

  3. 重复上面两个过程,直到剩余的图中不存在没有前驱的顶点。

示例

已知有向图G=(V,E)其中V={V1,V2,V3,V4,V5,V6,V7}
E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V2,V6>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},
则G的拓扑序列是:(BC)
A、V1, V4,V2,V6, V3,V5,V7
B、V1,V2,V3,V4, V5,V6,V7
C、V1,V3, V4,V2,V6,V5,V7
D、V1,V3,V4, V6,V2, V5,V7
在这里插入图片描述
计算入度 :
V1=0,V2=1,V3=1,V4=1,V5=2,V6=3,V7=2
找到入度为0,即V1删除
V1出来后:
V2=0,V3=0,V4=0,V5=1,V6=2,V7=2
不断选取入度为0的节点,然后将其后继节点的入度减一,依次计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值