Arian Soleimanzadeh
  • Startseite
  • Blog
  • Podcasts
  • Videos
  • Bibliothek
  • Kontakt
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
Bereich•Schnellkontakt

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

Termin vereinbaren

Senden Sie eine kurze Nachricht — ich antworte so bald wie möglich.

LinkedInSchnelle Antwort
Startseite/Artikel/Depth-First Search (DFS): Tiefensuche von den Grundlagen bis zur Praxis
AlgorithmsGraph AlgorithmsArtikel

Depth-First Search (DFS): Tiefensuche von den Grundlagen bis zur Praxis

Praxisnaher DFS-Leitfaden mit Rekursion, Stack, Cycle Detection, Connected Components, Topological Sort und Backtracking.

21. August 20269 Min. Lesezeit17 Aufrufe
#Graph#Algorithms#DFS#Recursion#Stack#Backtracking#JavaScript#TypeScript

Arian Soleimanzadeh

Software Engineer & Researcher

Visueller Leitfaden zu Depth-First Search DFS

Arian Soleimanzadeh

KI · Code · Produkt

Forschung + Engineering
Auf dieser Seite
JavaScriptDFS vs BFSConnected ComponentsCycle DetectionTopological SortBacktrackingAnwendungenKomplexitätFazit

DFS folgt einem Pfad so tief wie möglich und geht bei einer Sackgasse zurück, um einen anderen Zweig zu untersuchen.

Die Implementierung erfolgt mit Rekursion oder einem expliziten Stack.

JavaScript

JavaScript
12345678910111213141516171819
function dfs(graph, start) {
  const visited = new Set();
  const order = [];

  function visit(node) {
    if (visited.has(node)) return;

    visited.add(node);
    order.push(node);

    for (const next of graph[node] ?? []) {
      visit(next);
    }
  }

  visit(start);

  return order;
}

DFS vs BFS

DFS:

Code
12
Stack / Rekursion
tiefenorientiert

BFS:

Code
12
Queue
ebenenorientiert

BFS garantiert bei ungewichteten Graphen den kürzesten Weg. DFS ist natürlicher für Backtracking, Cycle Detection und Dependency-Strukturen.

Connected Components

Ein neuer DFS-Aufruf von jedem noch nicht besuchten Knoten entdeckt jeweils eine neue Komponente.

Cycle Detection

Bei ungerichteten Graphen muss der Parent berücksichtigt werden.

Bei gerichteten Graphen wird häufig ein Zustandssystem verwendet:

Code
123
unvisited
visiting
finished

Eine Kante zu einem visiting-Knoten zeigt einen Zyklus.

Topological Sort

DFS kann Knoten nach Abschluss aller Abhängigkeiten in eine Liste einfügen. Die umgekehrte Finish-Reihenfolge ergibt eine topologische Sortierung eines DAG.

Backtracking

Viele Backtracking-Probleme sind DFS auf einem Zustandsbaum:

Code
123
choose
recurse
undo

Anwendungen

  • Dateisysteme
  • DOM und AST
  • Dependency Graphs
  • Circular Dependencies
  • Connected Components
  • Maze und Grid
  • Netzwerktopologien

Komplexität

Mit Adjazenzlisten:

Code
12
Zeit: O(V + E)
Speicher: O(V)

Fazit

DFS ist nicht nur ein Traversal-Algorithmus, sondern die Grundlage vieler fortgeschrittener Graphverfahren wie SCC, Bridges, Articulation Points und Topological Sort.

Auf dieser Seite
JavaScriptDFS vs BFSConnected ComponentsCycle DetectionTopological SortBacktrackingAnwendungenKomplexitätFazit

Artikeldetails

Veröffentlichungsdaten, Lesezeit und aktuelle Aufrufzahlen.

Veröffentlicht

21. August 2026

Aktualisiert

31. Oktober 2026

Lesezeit

9 Min. Lesezeit

Aufrufe

17

Autor

Arian Soleimanzadeh

Vorheriger Artikel

Breadth-First Search (BFS): Graphen Ebene für Ebene durchsuchen

Nächster Artikel

Cycle Detection in Graphen: DFS, Union-Find und Kahn

Arian Soleimanzadeh

Ein persönliches Portfolio mit Fokus auf moderne Webentwicklung, UI-Systeme und praxisnahe KI-Produkte — sauberer Code, klares Design.

Schnellzugriff

  • Über mich
  • Blog
  • Bibliothek
  • Kontakt

Kontakt

  • soleimanzadeh.a.work@gmail.com
  • soleimanzadeh.uni@gmail.com

Verfügbarkeit: Wochentage

Antwortet in der Regel innerhalb von 24 Std.

Newsletter

Erhalten Sie Neuigkeiten zu Beiträgen, Projekten und neuen Veröffentlichungen.

© 2026 ariansoleimanzadeh.dev — Alle Rechte vorbehalten.

LinkedIn