如何排序依赖项数组?

时间:2016-03-22 10:37:46

标签: arrays algorithm sorting delphi reference

我有一个对象数组。这些对象包含可以相互引用的函数和过程。我需要一个序列,其中这些函数以正确的顺序声明。

示例:

   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]}]

我在德尔福工作。

1 个答案:

答案 0 :(得分:2)

您要查找的算法称为topological sorting