例如你输入n个点,m个联系
4 3
这四个点分别为1,2,3,4。但是这四个点输出的顺序必须是先有一个条件后有一个输出。
1 2
1 3
4 2
意思就是先输出2才能输出1,先输出3才能输出1,先输出2才能输出4.
我们就是要先创建四个数组,分别存入不同的数据。
例如创建a[num],b[num]两个数组分别用来存储数值。再创建一个r[num]用来存储入度。
入度是什么意思呢,就是2->1,3->1,2->4。
2的入度为0,3的入度为0,4的入度为1,1的入度为2.就是有几个点指向你,就是入度的大小。
将这些数据都存在数组里,然后每次遍历,如果遍历到入度为0的点,就输出,然后把和这个点有关的点的入度减去一。
继续遍历,就这么一直遍历到最后,就可以输出一个拓扑排序。
拓扑排序分析
最新推荐文章于 2022-12-05 20:39:59 发布