我有一个对象数组。这些对象包含函数和过程,它们可以相互引用。我需要一个序列,其中以正确的顺序声明这些函数。
示例:
someFunc1 uses someFunc2;
someFunc2 uses someFunc3;
正确的声明顺序:
someFunc3(){ ... }
someFunc2(){ ... }
someFunc1(){ ... }
在某些情况下,一个函数/过程引用了多个函数/过程。
数组看起来像这样:
[ {string: func_proc, array[int]: calledIn}, {}, {}, ... ]
- func_proc:函数/过程的代码;
- calledIn:函数/过程在数组中的位置,该函数/过程在此处有引用
例子:
[{"function someFunc1()...", []}, {"function someFunc2()...", [0]}, {"function someFunc3()...", [1]}]
我在德尔福工作。
最佳答案
您要查找的算法称为 topological sorting .
关于arrays - 如何对依赖项数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152105/