Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Graphendurchlaufalgorithmen | Graphen
Überblick Über Algorithmen und Datenstrukturen
course content

Kursinhalt

Überblick Über Algorithmen und Datenstrukturen

Überblick Über Algorithmen und Datenstrukturen

1. Einführung in ADS
2. Liste und Array
3. Fortgeschrittene Datenstrukturen
4. Graphen

book
Herausforderung: Graphendurchlaufalgorithmen

Graphendurchlauf-Algorithmen werden verwendet, um systematisch alle Knoten in einem Graphen zu besuchen. Zwei häufig verwendete Algorithmen für den Graphendurchlauf sind Tiefensuche (DFS) und Breitensuche (BFS).

DFS-Algorithmus

DFS erkundet so weit wie möglich entlang jedes Zweigs, bevor es zurückverfolgt. Es verwendet einen Stapel, um die Knoten zu verfolgen, die als nächstes besucht werden sollen. Dies liegt daran, dass DFS so weit wie möglich entlang jedes Zweigs erkundet, bevor es zurückverfolgt, und der Stapel ermöglicht es, den Pfad vom Startknoten zum aktuellen Knoten zu merken, um sicherzustellen, dass es zum vorherigen Knoten zurückverfolgen und andere Zweige erkunden kann, wenn nötig.

  1. Beginnen Sie bei einem Scheitelpunkt und markieren Sie ihn als besucht;
  2. Erkunden Sie alle angrenzenden, unbesuchten Scheitelpunkte rekursiv oder unter Verwendung eines Stapels;
  3. Wiederholen Sie den Vorgang, bis alle Scheitelpunkte besucht sind.

BFS-Algorithmus

Der Breadth-First Search (BFS) erkundet systematisch einen Graphen, indem er alle Knoten auf der aktuellen Tiefenebene besucht, bevor er zu den Knoten auf der nächsten Tiefenebene übergeht. Er verwendet eine Warteschlange, um die Erkundungsreihenfolge zu verwalten, stellt sicher, dass die Knoten in der Reihenfolge besucht werden, in der sie entdeckt wurden, und ermöglicht es, den Graphen Schicht für Schicht zu erkunden.

  1. Beginnen Sie bei einem Knoten und markieren Sie ihn als besucht;
  2. Fügen Sie den Knoten in eine Warteschlange ein;
  3. Entnehmen Sie einen Knoten aus der Warteschlange und erkunden Sie alle seine angrenzenden, unbesuchten Knoten;
  4. Fügen Sie diese Knoten in die Warteschlange ein;
  5. Wiederholen Sie die Schritte 3-4, bis die Warteschlange leer ist.
Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die BFS- und DFS-Algorithmen zu implementieren, indem Sie die Lücken in den Funktionen bfs() und dfs() füllen.

In der Funktion bfs() müssen wir den Breadth-First Search (BFS)-Algorithmus implementieren, der eine Warteschlange verwendet, um den Graphen zu durchlaufen. Das bedeutet, dass wir das erste Element aus dem Array der Knoten entfernen sollten, während wir den Graphen erkunden.

Umgekehrt müssen wir in der Funktion dfs() den Depth-First Search (DFS)-Algorithmus implementieren, der einen Stapel verwendet, um den Graphen zu durchlaufen. Daher sollten wir das letzte Element aus dem Array der Knoten entfernen, während wir durch den Graphen navigieren.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
toggle bottom row

book
Herausforderung: Graphendurchlaufalgorithmen

Graphendurchlauf-Algorithmen werden verwendet, um systematisch alle Knoten in einem Graphen zu besuchen. Zwei häufig verwendete Algorithmen für den Graphendurchlauf sind Tiefensuche (DFS) und Breitensuche (BFS).

DFS-Algorithmus

DFS erkundet so weit wie möglich entlang jedes Zweigs, bevor es zurückverfolgt. Es verwendet einen Stapel, um die Knoten zu verfolgen, die als nächstes besucht werden sollen. Dies liegt daran, dass DFS so weit wie möglich entlang jedes Zweigs erkundet, bevor es zurückverfolgt, und der Stapel ermöglicht es, den Pfad vom Startknoten zum aktuellen Knoten zu merken, um sicherzustellen, dass es zum vorherigen Knoten zurückverfolgen und andere Zweige erkunden kann, wenn nötig.

  1. Beginnen Sie bei einem Scheitelpunkt und markieren Sie ihn als besucht;
  2. Erkunden Sie alle angrenzenden, unbesuchten Scheitelpunkte rekursiv oder unter Verwendung eines Stapels;
  3. Wiederholen Sie den Vorgang, bis alle Scheitelpunkte besucht sind.

BFS-Algorithmus

Der Breadth-First Search (BFS) erkundet systematisch einen Graphen, indem er alle Knoten auf der aktuellen Tiefenebene besucht, bevor er zu den Knoten auf der nächsten Tiefenebene übergeht. Er verwendet eine Warteschlange, um die Erkundungsreihenfolge zu verwalten, stellt sicher, dass die Knoten in der Reihenfolge besucht werden, in der sie entdeckt wurden, und ermöglicht es, den Graphen Schicht für Schicht zu erkunden.

  1. Beginnen Sie bei einem Knoten und markieren Sie ihn als besucht;
  2. Fügen Sie den Knoten in eine Warteschlange ein;
  3. Entnehmen Sie einen Knoten aus der Warteschlange und erkunden Sie alle seine angrenzenden, unbesuchten Knoten;
  4. Fügen Sie diese Knoten in die Warteschlange ein;
  5. Wiederholen Sie die Schritte 3-4, bis die Warteschlange leer ist.
Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die BFS- und DFS-Algorithmen zu implementieren, indem Sie die Lücken in den Funktionen bfs() und dfs() füllen.

In der Funktion bfs() müssen wir den Breadth-First Search (BFS)-Algorithmus implementieren, der eine Warteschlange verwendet, um den Graphen zu durchlaufen. Das bedeutet, dass wir das erste Element aus dem Array der Knoten entfernen sollten, während wir den Graphen erkunden.

Umgekehrt müssen wir in der Funktion dfs() den Depth-First Search (DFS)-Algorithmus implementieren, der einen Stapel verwendet, um den Graphen zu durchlaufen. Daher sollten wir das letzte Element aus dem Array der Knoten entfernen, während wir durch den Graphen navigieren.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt