arrays - 如何对依赖项数组进行排序?

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

我在德尔福工作。

最佳答案

您要查找的算法称为 topological sorting .

关于arrays - 如何对依赖项数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152105/

相关文章:

javascript - 使用 JavaScript 创建排序行

javascript - 获取网页上计数最多的单词或短语 -> 存储在变量中

javascript - 如何使用正则表达式在javascript中拆分字符串

c - C 中的指针操作和运算符优先级

arrays - 构造第二个数组算法

algorithm - 内存指数算法

python - Pandas sort_values 没有正确排序数字

在 C 中创建大型数组

arrays - 当新项目添加到原始数组时,如何更新作为 init 参数传递的数组

c++ - 返回列表子集的最佳方法是什么