<分区>
Possible Duplicate:
Finding all cycles in graph
我有一个任务我一直在绞尽脑汁,但在执行它时仍然遇到困难。开始了:有一个类:
public class Package {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private List<Package> dependencies;
public List<Package> getDependencies() {
return dependencies;
}
public void setDependencies(List<Package> dependencies) {
this.dependencies = dependencies;
}
public Package(String name){
this.name = name;
this.dependencies = new ArrayList<Package>();
}
//any bunch of methods here))
}
还有一个:
public class Project {
private String name;
private List<Package> packages = new ArrayList<Package>();
public boolean hasCyclic(){
//**//implementation should be here
}
}
我需要查找项目中的包列表是否具有循环依赖性。例如 A->B->C->B - 找到,返回真或 A->C->Z->A - 找到,返回真。 首先想到的是获取所有包的名称,对它们进行排序并查找重复项。但是在我大脑深处的某个地方,有东西告诉我这不是最佳解决方案。你们能帮帮我吗?非常感谢您。