我在想什么时候应该用Prim的算法,什么时候用Kruskal的算法来寻找最小生成树?它们都有简单的逻辑,同样的最坏情况,唯一的区别是实现可能涉及一些不同的数据结构。那么决定因素是什么呢?

有没有一种有效的算法来检测有向图中的循环?我有一个有向图,表示需要执行的作业计划,作业是一个节点,依赖项是一个边。我需要检测这个图中导致循环依赖关系的循环的错误情况。

我理解DFS和BFS之间的区别,但是我想知道在选择DFS和BFS时应该考虑哪些因素。比如对于非常深的树避免DFS,等等。