0
내가 어떤 정점주기의 일부인지 확인하는 방법을 쓰기 위해 노력하고있어,하지만 난StackOverflow의 오류 그래서
java.lang.StackOverflowError
at java.lang.Integer.compareTo(Unknown Source)
at java.lang.Integer.compareTo(Unknown Source)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at graph.EdgeSet.neighbors(EdgeSet.java:42)
at graph.Graph.getNeighbors(Graph.java:127)
at graph.Graph.cycleHelper(Graph.java:164)
at graph.Graph.cycleHelper(Graph.java:171)
여기 내 방법입니다이 오류를 얻을
public boolean isInCycle(V vertex) throws IllegalArgumentException {
if (!hasVertex(vertex)) {
throw new IllegalArgumentException();
}
Iterator<Vertex<V>> v = vertexMap.keySet().iterator();
while (v.hasNext()) {
Vertex<V> vert = v.next();
vert.activated = false;
vert.through = false;
}
return cycleHelper(vertex);
}
private boolean cycleHelper(V vertex) {
Vertex<V> ve = vertexMap.get(new Vertex<V>(vertex)).vertex();
ve.activated = true;
Iterator<V> n = getNeighbors(vertex).iterator();
while (n.hasNext()) {
V vert = n.next();
Vertex<V> curr = vertexMap.get(new Vertex<V>(vert)).vertex();
if (curr.activated)
return true;
else {
return cycleHelper(curr.vertex());
}
}
return false;
}
아무도 올바른 방향으로 나를 가리킬 수 있습니까?
내가 부울을 활성화했습니다 – Mark
이미 활성화되었는지 확인하지 않습니까? 버텍스 클래스는 부울 값을 가지고 있습니다. – Mark
@Dad 죄송합니다, 그것을 잘못 해석하셨습니다. 나는 대답을 편집 할 것이지만, 새로운 것은 추측 일 뿐이다. (그리고 여전히 틀린 것이 있다면 나는 대답을 지울 것이다) – Marco13