实现(第 2 部分)
Coddy 拓扑排序:图算法 课程的第 6 课,共 9 课。
现在,我们反复移除入度为 0 的顶点,以构建顺序。
挑战
中等现在,构建完整的顺序。
编写一个名为 topologicalSort 的函数,它接收 n 和扁平的 edges 数组(有向边 u -> v),并返回顶点的拓扑顺序。
使用 Kahn 算法:计算入度,然后反复取入度为 0 的最小顶点,将它添加到结果中,并减少其出邻居的入度。本挑战的输入都是无环的。
每一步都取当前可用的最小顶点,这样答案就是唯一的。
亲手试试
#include <stdlib.h>
int* topologicalSort(int n, int* edges, int edges_size, int* returnSize) {
// 在这里编写代码
*returnSize = 0;
return edges;
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
拓扑排序:图算法中的所有课
自己练习: C 在线编译器