private void performDFS(URI v) { if (!valid) { return; } if (!verticesColors.containsKey(v)) { verticesColors.put(v, Color.ORANGE); Set<E> edges = graph.getE(v, wc); for (E e : edges) { if (!valid) { return; } URI target = e.getTarget(); if (target.equals(v)) { // IN target = e.getSource(); } if (verticesColors.get(target) != Color.RED) { currentPath.addEdge(e); lastEdge = e; performDFS(target); } } if (!valid) { return; } currentPath.removeLastEdge(); verticesColors.put(v, Color.RED); } else if (verticesColors.get(v) == Color.ORANGE) { valid = false; } }
private void performDFS(URI v) { if (!valid) { return; } if (!vertexColor.containsKey(v)) { vertexColor.put(v, Color.ORANGE); Set<E> edges = graph.getE(v, wc); for (E e : edges) { if (!valid) { return; } URI target = e.getTarget(); if (target.equals(v)) { // IN target = e.getSource(); } if (vertexColor.get(target) != Color.RED) { currentPath.addEdge(e); lastEdge = e; performDFS(target); } } if (!valid) { return; } currentPath.removeLastEdge(); vertexColor.put(v, Color.RED); } else if (vertexColor.get(v) == Color.ORANGE) { valid = false; } }