我已经实现了一个使用DFS的拓扑排序算法,以构建拓扑排序的课程列表及其预先要求。我已将其作为邻接列表实现。
输入:
所以我运行我的topSort算法:
public static void topSort(Course[] courses){
int i = 0;
Course[] solution = new Course[courses.length];
for (Course c: courses){
if (!c.visited){
solution[i] = DFS(c);
}
i++;
}
for (Course e: solution){
System.out.println(e);
}
}
public static Course DFS(Course course){
course.visited = true;
for (Course pr:course.preReqs){
if (!pr.visited){
DFS(pr);
}
}
return course;
}
输出:
Course-1
null
null
Course-4
Course-5
Course-6
null
我不确定我在哪里出错了。请指教!