Datenstrukturen II (Hierarchisch & Vernetzt)
Bäume, Suchbäume und Graphen — Datenstrukturen mit Familienverhältnissen.
Nach Arrays und Linked Lists denkst du vielleicht, Daten sitzen immer in einer Reihe. Aber die meisten Beziehungen in der echten Welt sind hierarchisch (Ordner, Organigramme) oder vernetzt (Straßen, soziale Netzwerke). Bäume und Graphen erfassen diese Formen — und die Algorithmen, die sie durchlaufen, treiben alles an, von Webbrowsern bis zu Navigations-Apps.
Dieser Artikel stellt die drei Strukturen vor, die lineare Daten und Suchalgorithmen verbinden: Bäume, binäre Suchbäume und Graphen.
Bäume — Hierarchie mit Regeln
Baum (Tree)
Echte Dateisysteme haben symbolische Links, die mehrere Pfade zur selben Datei erzeugen — das verletzt die Baum-Eigenschaft und macht die Struktur zum Graphen. Auch der Stammbaum bricht, weil reale Personen zwei biologische Eltern haben.
Beispiel: Der DOM-Baum
Keine Zyklen, eine Wurzel, genau ein Pfad zwischen zwei Knoten. Kanten = n - 1. Strenge Hierarchie.
Zyklen erlaubt, keine Wurzel nötig, mehrere Pfade möglich. Flexible Vernetzung ohne feste Hierarchie.
Irrtum: Bäume und Graphen sind völlig verschieden
Binäre Suchbäume — Geordnet für Geschwindigkeit
Binärer Suchbaum (BST)
Ein Telefonbuch ist flach und sequentiell; ein BST ist hierarchisch. Außerdem hängt die logarithmische Garantie von der Balance ab — sortiertes Einfügen erzeugt ein "einseitiges Telefonbuch" (verkettete Liste).
BST-Suche: Schritt für Schritt
Balance entscheidet
Irrtum: BST-Suche ist immer O(log n)
Deep Dive: Selbstbalancierende Bäume
Interaktiv: BST-Suche Schritt für Schritt
Du hast gelernt, dass ein BST bei jedem Vergleich den Suchraum halbiert. Klicke dich durch die Schritte einer echten Suche und beobachte, wie der Algorithmus den Baum durchläuft — Knoten für Knoten, Vergleich für Vergleich.
Die Suche beginnt an der Wurzel (50). Der Zielwert 40 ist kleiner als 50 — also geht der Algorithmus nach links.
Graphen — Das allgemeine Netzwerk
Graph
U-Bahn-Netze sind an Geografie, euklidische Distanzen und physische Gesetze gebunden. In abstrakten Graphen gibt es solche Grenzen nicht — ein Knoten in Tokyo kann eine direkte Kante mit Kosten 0 zu einem Knoten in Berlin haben.
Graphen in der echten Welt
Irrtum: Bei gerichteten Graphen kann man immer in beide Richtungen
Deep Dive: Wie speichert man Graphen?
Das Wichtigste
Quiz: Hierarchische Datenstrukturen
Checkpoint: Verstehst du hierarchische Datenstrukturen?
- Ich kann einen Baum durch seine Regeln definieren (Wurzel, Eltern, Kinder, Blätter, keine Zyklen) und erklären, warum jeder Baum ein Graph ist, aber nicht jeder Graph ein Baum.
- Ich kann eine Suche in einem BST nachverfolgen und erklären, wann sie O(log n) ist und wann sie zu O(n) degeneriert.
- Ich kann gerichtete von ungerichteten und gewichtete von ungewichteten Graphen unterscheiden und je ein Beispiel aus der echten Welt nennen.