Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:graphen:zpg:minimalspanningtree:prim:start [07.12.2022 12:30] – [Beispiel] Frank Schiebel | faecher:informatik:oberstufe:graphen:zpg:minimalspanningtree:prim:start [18.03.2025 07:12] (aktuell) – [Beispiel] Svenja Müller | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
* Versuche herauszufinden, | * Versuche herauszufinden, | ||
- | * Welche Situation muss vermieden werden? Fällt dir dafür eine einfache Lösung ein. | + | * Welche Situation muss vermieden werden? Fällt dir dafür eine einfache Lösung ein? |
* Beschreibe deinen so gefundenen Algorithmus in einem kurzen Text. | * Beschreibe deinen so gefundenen Algorithmus in einem kurzen Text. | ||
* Vergleiche deine Beschreibung mit den Musterlösung (unten) und bewerte, ob du das Vorgehen richtig nachvollzogen hast. | * Vergleiche deine Beschreibung mit den Musterlösung (unten) und bewerte, ob du das Vorgehen richtig nachvollzogen hast. | ||
Zeile 152: | Zeile 152: | ||
=== (A3) === | === (A3) === | ||
- | Implementiere eine eigene Version des Kruskal-Algorithmus im Graphentester. | + | Implementiere eine eigene Version des Prim-Algorithmus im Graphentester. |
++++ Lösungsvorschlag | | ++++ Lösungsvorschlag | | ||
<code java> | <code java> | ||
- | int farbe = 1; | ||
- | List< | ||
List< | List< | ||
+ | List< | ||
Collections.sort(kanten); | Collections.sort(kanten); | ||
+ | knoten.get(0).setMarkiert(true); | ||
- | for (Kante k: kanten) { | + | for(int |
- | | + | |
- | | + | |
- | | + | if(ka2.getStart().isMarkiert() != ka2.getZiel().isMarkiert()) { |
- | | + | |
- | k.getZiel().setFarbe(farbe); | + | |
- | k.setMarkiert(true); | + | |
- | farbe++; | + | |
- | } else | + | |
- | | + | |
- | k.getStart().setFarbe(f2); | + | |
- | k.setMarkiert(true); | + | |
- | } else | + | |
- | if(f2 == 0) { | + | |
- | k.getZiel().setFarbe(f1); | + | |
- | k.setMarkiert(true); | + | |
- | } else | + | |
- | if(f1 == f2) { | + | |
- | k.setGeloescht(true); | + | |
- | } else | + | |
- | { | + | |
- | for(Knoten k1 : knoten) { | + | |
- | | + | |
} | } | ||
- | k.setMarkiert(true); | ||
} | } | ||
+ | |||
+ | ka.setMarkiert(true); | ||
+ | kanten.remove(ka); | ||
+ | ka.getStart().setMarkiert(true); | ||
+ | ka.getZiel().setMarkiert(true); | ||
} | } | ||
</ | </ | ||
++++ | ++++ |