Zum Inhalt
Übung Matching Probleme
Aus ProgrammingWiki
Uebung.pdf
Edge-Klasse:
public class Edge { String v1; String v2; Edge(String v1, String v2) { this.v1 = v1; this.v2 = v2; } public boolean isNeighbour(Edge e) { if (e.v1 == this.v1 || e.v1 == this.v2 || e.v2 == this.v1 || e.v2 == this.v2) { return true; } return false; } }
Graph-Klasse
public class Graph { private List<String> vertices = new ArrayList<>(); private List<Edge> edges = new ArrayList<>(); public void setEdges(Edge[] edges) { this.edges.clear(); for (Edge e : edges) { this.edges.add(e); } } public void setEdges(String[] edges) { if (edges.length % 2 != 0) { System.out.println("wrong Array length"); } else { for (int i = 0; i < edges.length; i++) { this.addEdge(new Edge(edges[i], edges[i + 1])); i++; } } } public void addEdge(Edge e) { this.edges.add(e); this.vertices.add(e.v1); this.vertices.add(e.v2); } public List<String> getVertices() { return this.vertices; } public List<Edge> getEdges() { return this.edges; } public List<Edge> getMaximum(Graph g) { List<Edge> e = g.edges; List<Edge> eDel = new ArrayList<>(); List<Edge> m = new ArrayList<>(); int index = e.size() - 1; while (!e.isEmpty()) { Edge element = e.get(index); m.add(element); e.remove(index); for (Edge elem : e) { if (element.isNeighbour(elem)) { eDel.add(elem); } } e.removeAll(eDel); index = e.size() - 1; } return m; } }
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten