拓扑排序的快速算法(有向无环图)

拓扑排序的快速算法(有向无环图)

顶点集V = {1,2,3,4,5,6,7}

边集<起点,终点>

E = {<2,1>,< 3,2>,< 3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}

拓扑排序序列T = ()

算法如下:

1.在边集E中的寻找终点不存在顶点集的边,

在边集E中,终点没有属于顶点集的是4,所以4就是起点

2,删除所有边集中存在顶点4的边,得到以下边集

E1 = {<2,1>,< 3,2>,< 3,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}

T = (4)

3.再在得到的边集中,寻找不存在顶点集的的点,除了已经删除的点

E1中没有属于顶点集的是3,所以删除E1中含有3的边,得到

E2 = {<2,1>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}

T = (4,3)

重复上述步骤:

第三次删除顶点6

得到边集E3={<2,1>,<5,1>,<5,7>}

T = (4,3,6)

第四次删除顶点5

得到边集E4 = {<2,1>}

T = (4,3,6,5)

第五次删除顶点7

得到边集

E5 = {<2,1>}

T = (4,3,6,5,7)

第六次删除顶点2

得到边集

E6 = {}

T = (4,3,6,5,7,2)

最后只剩下1,加入到最后

最后得到了拓扑排序是:

4,3,6,5,7,2,1

补充:如果发现有两个或者以上可以删除的顶点,则要进另外判断。

在上述中第四次也可以删除顶点2

得到边集E4 = {<5,1>,<5,7>}

T = (4,3,6,2)

第五次删除顶点5

得到边集

E5 = {}

T = (4,3,6,2,5)

这次得到了空集,但是还有两个顶点没有删除,所以这条路走不通。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mxmevol

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值