Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package A09_ZyklenTiefensuche;
- import java.util.*;
- import java.util.concurrent.ArrayBlockingQueue;
- import basisAlgorithmen.Graph;
- import basisAlgorithmen.Vertex;
- import basisAlgorithmen.WeightedEdge;
- public class Zyklen {
- private Graph g;
- public Zyklen(Graph g) {
- this.g = g;
- }
- /**
- * Retourniert einen Zyklus eines Graphen, sofern einer existiert
- *
- * @return Anzahl der Komponenten
- */
- public List<Integer> getCycle() {
- int startVertex = 0;
- List<Integer> loop = new LinkedList<>();
- loop.add(startVertex);
- while (startVertex < g.numVertices()) {
- for (WeightedEdge edge : g.getEdges(startVertex)
- ) {
- if (!loop.contains(edge.to_vertex))
- loop.add(edge.to_vertex);
- else {
- return loop;
- }
- if (!loop.contains(edge.from_vertex))
- loop.add(edge.from_vertex);
- else
- return loop;
- }
- startVertex++;
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement