Graph.java
net.minecraft.util.Graph
信息
- 全限定名:net.minecraft.util.Graph
- 类型:public final class
- 包:net.minecraft.util
- 源码路径:src/main/java/net/minecraft/util/Graph.java
- 起始行号:L8
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
private Graph() @ L9
- 构造器名:Graph
- 源码定位:L9
- 修饰符:private
参数:
- 无
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static <T> boolean depthFirstSearch(Map<T,Set<T>> edges, Set<T> discovered, Set<T> currentlyVisiting, Consumer<T> reverseTopologicalOrder, T current) @ L12
- 方法名:depthFirstSearch
- 源码定位:L12
- 返回类型:
boolean - 修饰符:public static
参数:
- edges: Map<T,Set
> - discovered: Set
- currentlyVisiting: Set
- reverseTopologicalOrder: Consumer
- current: T
说明:
TODO
代码
public final class Graph {
private Graph() {
}
public static <T> boolean depthFirstSearch(
Map<T, Set<T>> edges, Set<T> discovered, Set<T> currentlyVisiting, Consumer<T> reverseTopologicalOrder, T current
) {
if (discovered.contains(current)) {
return false;
} else if (currentlyVisiting.contains(current)) {
return true;
} else {
currentlyVisiting.add(current);
for (T next : edges.getOrDefault(current, ImmutableSet.of())) {
if (depthFirstSearch(edges, discovered, currentlyVisiting, reverseTopologicalOrder, next)) {
return true;
}
}
currentlyVisiting.remove(current);
discovered.add(current);
reverseTopologicalOrder.accept(current);
return false;
}
}
}引用的其他类
- 无