graphen:breitensuche:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
graphen:breitensuche:start [2023/10/23 08:12] – [Aufgabe 2] Martin Pabst | graphen:breitensuche:start [2023/11/05 14:11] (aktuell) – [Aufgabe 1] Martin Pabst | ||
---|---|---|---|
Zeile 26: | Zeile 26: | ||
Der oben gezeichnete Graph soll von A ausgehend mit dem Algorithmus der Breitensuche durchlaufen werden. Geben Sie eine mögliche Reihenfolge der besuchten Knoten an! | Der oben gezeichnete Graph soll von A ausgehend mit dem Algorithmus der Breitensuche durchlaufen werden. Geben Sie eine mögliche Reihenfolge der besuchten Knoten an! | ||
- | [[.aufgabe1Loesung: | + | [[.aufgabe1Loesung: |
Zeile 104: | Zeile 104: | ||
===== Aufgabe 2 ===== | ===== Aufgabe 2 ===== | ||
- | Der Algorithmus zur Breitensuche kann auf einfache Art so abgewandelt werden, dass sich damit ermitteln lässt, ob ein **ungerichteter** Graph zusammenhängend ist oder nicht. Scheibe - ausgehend vom oben gegebenen Programm - eine Methode '' | + | Der Algorithmus zur Breitensuche kann auf einfache Art so abgewandelt werden, dass sich damit ermitteln lässt, ob ein **ungerichteter** Graph zusammenhängend ist oder nicht. Scheibe - ausgehend vom oben gegebenen Programm - eine Methode '' |
+ | Du kannst als Ausgangspunkt das folgende Programmfragment benutzen: | ||
+ | < | ||
+ | <img src=" | ||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | Graph g = new Graph(8); | ||
+ | g.ungerichteteKanteHinzufügen(0, | ||
+ | g.ungerichteteKanteHinzufügen(1, | ||
+ | g.ungerichteteKanteHinzufügen(1, | ||
+ | g.ungerichteteKanteHinzufügen(2, | ||
+ | g.ungerichteteKanteHinzufügen(3, | ||
+ | g.ungerichteteKanteHinzufügen(2, | ||
+ | g.ungerichteteKanteHinzufügen(4, | ||
+ | g.ungerichteteKanteHinzufügen(3, | ||
+ | g.ungerichteteKanteHinzufügen(5, | ||
+ | g.ungerichteteKanteHinzufügen(5, | ||
+ | g.ungerichteteKanteHinzufügen(1, | ||
+ | g.ungerichteteKanteHinzufügen(6, | ||
+ | g.ungerichteteKanteHinzufügen(7, | ||
+ | g.breitensuche(1); | ||
+ | |||
+ | |||
+ | public class Graph { | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | adj = new int[anzahlKnoten][anzahlKnoten]; | ||
+ | } | ||
+ | |||
+ | | ||
+ | adj[vonIndex][nachIndex] = 1; | ||
+ | adj[nachIndex][vonIndex] = 1; | ||
+ | } | ||
+ | |||
+ | | ||
+ | boolean[] besucht = new boolean[adj.length]; | ||
+ | LinkedList< | ||
+ | warteschlange.addLast(start); | ||
+ | besucht[start] = true; | ||
+ | println(" | ||
+ | |||
+ | while (!warteschlange.isEmpty()) { | ||
+ | int knoten = warteschlange.removeFirst(); | ||
+ | |||
+ | for (int i = 0; i < adj.length; i++) { | ||
+ | if(adj[knoten][i] != 0 && !besucht[i]) { | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
+ | </ | ||
[[.aufgabe2Loesung: | [[.aufgabe2Loesung: | ||
graphen/breitensuche/start.1698048752.txt.gz · Zuletzt geändert: 2023/10/23 08:12 von Martin Pabst