我有一个数据结构,如下所示:
class File
{
public string Value { get; set; }
public File[] Dependencies { get; set; }
public bool Change { get; private set; }
public File(string value,File[] dependencies)
{
Value = value;
Dependencies = dependencies;
Change = false;
}
}
基本上,这种数据结构遵循典型的文件构建执行。
每个文件都有一个值和一个依赖项列表,它们的类型也是File。每个文件都有一个名为Change的属性,它告诉文件是否被更改。
我集思广益,形成了一个算法,该算法遍历所有这些文件并按顺序构建(即典型的构建过程),但没有更好的算法。
有人可以对此有所了解吗?
非常感谢。
马赫什
答案 0 :(得分:2)
您正在寻找的算法称为topological sorting。
答案 1 :(得分:1)
请遵循以下基本步骤。
您需要进行一些检查以检测循环依赖关系,这将导致步骤5的无限循环。除此之外,这应该可行。