graphen:breitensuche:aufgabe2loesung:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
graphen:breitensuche:aufgabe2loesung:start [2023/10/18 09:01] – [Lösungsidee:] Martin Pabst | graphen:breitensuche:aufgabe2loesung:start [2023/10/23 13:16] (aktuell) – Martin Pabst | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
< | < | ||
- | <img src=" | + | <img src=" |
<div class=" | <div class=" | ||
<script type=" | <script type=" | ||
Graph g = new Graph(8); | Graph g = new Graph(8); | ||
- | g.kanteHinzufügen(0, 1); | + | g.ungerichteteKanteHinzufügen(0, 1); |
- | g.kanteHinzufügen(1, 0); | + | g.ungerichteteKanteHinzufügen(1, 0); |
- | g.kanteHinzufügen(1, 2); // Kommentiere diese Zeile aus, um einen nicht-zusammenhängenden Beispielgraphen | + | g.ungerichteteKanteHinzufügen(1, 2); |
- | g.kanteHinzufügen(2, 3); | + | g.ungerichteteKanteHinzufügen(2, 3); |
- | g.kanteHinzufügen(3, 4); | + | g.ungerichteteKanteHinzufügen(3, 4); |
- | g.kanteHinzufügen(2, 4); | + | g.ungerichteteKanteHinzufügen(2, 4); |
- | g.kanteHinzufügen(4, 2); | + | g.ungerichteteKanteHinzufügen(4, 2); |
- | g.kanteHinzufügen(3, 5); | + | g.ungerichteteKanteHinzufügen(3, 5); |
- | g.kanteHinzufügen(5, 2); | + | g.ungerichteteKanteHinzufügen(5, 2); |
- | g.kanteHinzufügen(5, 6); | + | g.ungerichteteKanteHinzufügen(5, 6); // Kommentiere diese Zeile aus, um einen ungerichteten Graphen zu erhalten. |
- | g.kanteHinzufügen(1, 6); | + | g.ungerichteteKanteHinzufügen(1, 6); |
- | g.kanteHinzufügen(6, 7); | + | g.ungerichteteKanteHinzufügen(6, 7); |
- | g.kanteHinzufügen(7, 0); | + | g.ungerichteteKanteHinzufügen(7, 0); |
if(g.istZusammenhängend()) { | if(g.istZusammenhängend()) { | ||
Zeile 30: | Zeile 30: | ||
| | ||
} | } | ||
+ | |||
public class Graph { | public class Graph { | ||
Zeile 39: | Zeile 40: | ||
} | } | ||
| | ||
- | | + | |
adj[vonIndex][nachIndex] = 1; | adj[vonIndex][nachIndex] = 1; | ||
+ | adj[nachIndex][vonIndex] = 1; | ||
} | } | ||
| | ||
| | ||
+ | |||
boolean[] besucht = new boolean[adj.length]; | boolean[] besucht = new boolean[adj.length]; | ||
- | LinkedList< | ||
- | | + | |
warteschlange.addLast(0); | warteschlange.addLast(0); | ||
besucht[0] = true; | besucht[0] = true; | ||
println(" | println(" | ||
+ | // Solange die Warteschlange nicht leer ist | ||
while (!warteschlange.isEmpty()) { | while (!warteschlange.isEmpty()) { | ||
int knoten = warteschlange.removeFirst(); | int knoten = warteschlange.removeFirst(); | ||
+ | |||
+ | // suche die benachbarten Knoten: | ||
for (int i = 0; i < adj.length; i++) { | for (int i = 0; i < adj.length; i++) { | ||
if(adj[knoten][i] != 0 && !besucht[i]) { | if(adj[knoten][i] != 0 && !besucht[i]) { | ||
Zeile 65: | Zeile 69: | ||
} | } | ||
- | | + | for (int i = 0; i < besucht.length; i++) { |
- | | + | |
| | ||
return false; | return false; | ||
Zeile 74: | Zeile 77: | ||
return true; | return true; | ||
} | } | ||
+ | |||
+ | |||
} | } |
graphen/breitensuche/aufgabe2loesung/start.1697619667.txt.gz · Zuletzt geändert: 2023/10/18 09:01 von Martin Pabst