Zum Inhalt springen

Baumstruktur

Aus MOOCsWiki Staging
Die Druckversion wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.
aiMOOC-Siegel

Baumstruktur




Baumstruktur


Einleitung

Eine Baumstruktur ist in der Informatik eine hierarchische Datenstruktur. Sie besteht aus Knoten und Kanten. Bei einem gewurzelten Baum gibt es genau eine Wurzel. Jeder andere Knoten besitzt genau einen Elternknoten, kann aber mehrere Kinder haben. Dadurch lassen sich verzweigte Beziehungen übersichtlich darstellen.

Dieser aiMOOC richtet sich an Lernende der Sekundarstufe II und der beruflichen IT-Ausbildung. Du lernst die Grundbegriffe, den Binärbaum, den binären Suchbaum und wichtige Arten der Traversierung kennen.


Grundidee und Fachbegriffe

Ein Baum beginnt an der Wurzel und verzweigt sich über Kanten zu weiteren Knoten. Ein Knoten ohne Kinder heißt Blatt. Ein Knoten zusammen mit allen darunterliegenden Knoten bildet einen Teilbaum.

Begriff Bedeutung
Wurzel Oberster Ausgangsknoten eines gewurzelten Baums
Elternknoten Direkter Vorgänger eines Knotens
Kindknoten Direkter Nachfolger eines Knotens
Blatt Knoten ohne Kinder
Tiefe Anzahl der Kanten von der Wurzel bis zu einem Knoten
Höhe Länge des längsten abwärts führenden Pfads bis zu einem Blatt


Baum und Teilbaum

Die Struktur ist rekursiv: Jeder Teilbaum ist selbst wieder ein Baum. Diese Eigenschaft macht Bäume besonders geeignet für rekursive Algorithmen. Ein Baum mit nur einem Knoten besteht ausschließlich aus seiner Wurzel.


Binärbaum

Ein Binärbaum ist ein Baum, bei dem jeder Knoten höchstens zwei Kinder besitzt. Meist spricht man vom linken und rechten Kind. Ein Binärbaum muss nicht vollständig und auch nicht automatisch sortiert sein.


Binärer Suchbaum

Ein binärer Suchbaum ergänzt den Binärbaum um eine Ordnungsregel. In einer üblichen Variante liegen kleinere Schlüssel im linken und größere Schlüssel im rechten Teilbaum. Dadurch kann die Suche nach einem Wert schrittweise auf einen Teilbaum eingeschränkt werden.

Für die Laufzeit ist die Höhe entscheidend. Suchen benötigt im Wesentlichen Zeit proportional zur Baumhöhe. Bei einem balancierten Suchbaum ist die Höhe typischerweise logarithmisch zur Anzahl der Knoten. Ein stark entarteter Baum kann dagegen nahezu wie eine Liste aussehen und eine lineare Suchzeit verursachen.


Traversierung

Unter Traversierung versteht man das systematische Besuchen aller Knoten eines Baums. Bei einem Binärbaum sind besonders vier Reihenfolgen wichtig:

Verfahren Reihenfolge Idee
Preorder Knoten – linker Teilbaum – rechter Teilbaum Der aktuelle Knoten wird zuerst verarbeitet
Inorder Linker Teilbaum – Knoten – rechter Teilbaum Bei binären Suchbäumen entstehen die Schlüssel in sortierter Reihenfolge
Postorder Linker Teilbaum – rechter Teilbaum – Knoten Der aktuelle Knoten wird zuletzt verarbeitet
Levelorder Ebene für Ebene Die Suche erfolgt in die Breite

Eine vollständige Traversierung besucht jeden Knoten. Für einen Baum mit n Knoten liegt der Aufwand deshalb in Θ(n).


Anwendungen

Baumstrukturen findest Du in vielen Bereichen der Informatik. Verzeichnisstrukturen werden häufig baumartig dargestellt. Auch das DOM einer Webseite, Syntaxbäume in Programmiersprachen, Entscheidungsbäume und verschiedene Datenbankindizes nutzen hierarchische oder baumartige Strukturen.


Warum Baumstrukturen nützlich sind

Bäume bilden Hierarchien direkt ab und erlauben oft effiziente Such-, Einfüge- und Löschoperationen. Die konkrete Effizienz hängt jedoch von der Baumart und ihrer Form ab. Deshalb gibt es balancierte Suchbäume wie AVL-Bäume oder Rot-Schwarz-Bäume sowie mehrwegige Strukturen wie B-Bäume.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Wie heißt der oberste Knoten eines gewurzelten Baums? (Wurzel) (!Blatt) (!Kante) (!Teilbaum)




Wie heißt ein Knoten ohne Kinder? (Blatt) (!Wurzel) (!Elternknoten) (!Suchpfad)




Wie viele Kinder kann ein Knoten in einem Binärbaum höchstens haben? (Zwei) (!Eins) (!Drei) (!Beliebig viele)




Wie viele Elternknoten besitzt jeder Nichtwurzelknoten in einem gewurzelten Baum? (Einen) (!Keinen) (!Zwei) (!Beliebig viele)




Welche Aussage beschreibt einen binären Suchbaum in einer üblichen Ordnung? (Kleinere Schlüssel liegen links und größere rechts) (!Alle Schlüssel liegen nur in den Blättern) (!Jeder Knoten besitzt genau zwei Kinder) (!Die Wurzel ist immer der kleinste Schlüssel)




Welche Traversierung besucht beim Binärbaum zuerst den linken Teilbaum, dann den Knoten und danach den rechten Teilbaum? (Inorder) (!Preorder) (!Postorder) (!Levelorder)




Welche Traversierung arbeitet Ebene für Ebene? (Levelorder) (!Inorder) (!Postorder) (!Preorder)




Wovon hängt die Suchzeit in einem binären Suchbaum wesentlich ab? (Von der Höhe des Baums) (!Von der Farbe der Knoten) (!Von der Bildschirmgröße) (!Von der Dateiendung)




Welchen Aufwand hat eine vollständige Traversierung mit n Knoten? (Linear) (!Konstant) (!Quadratisch) (!Unabhängig von der Knotenzahl)




Was ist ein Teilbaum? (Ein Knoten mit allen darunterliegenden Knoten) (!Nur die Wurzel ohne Nachfolger) (!Eine einzelne Kante) (!Eine sortierte Liste ohne Verzweigung)





Memory

Wurzel Oberster Ausgangsknoten
Blatt Knoten ohne Kinder
Kante Verbindung zwischen Knoten
Tiefe Abstand eines Knotens von der Wurzel
Teilbaum Hierarchie unterhalb eines gewählten Knotens
Traversierung Systematisches Besuchen von Knoten





Drag and Drop

Ordne die richtigen Begriffe zu. Beschreibung
Wurzel Startpunkt eines gewurzelten Baums
Blatt Endknoten ohne Kinder
Preorder Knoten vor den beiden Teilbäumen
Inorder Knoten zwischen linkem und rechtem Teilbaum
Postorder Knoten nach den beiden Teilbäumen






Kreuzworträtsel

Wurzel Wie heißt der oberste Knoten eines gewurzelten Baums?
Blatt Wie heißt ein Knoten ohne Kinder?
Knoten Wie heißt ein einzelnes Element eines Baums?
Kante Wie heißt die Verbindung zwischen zwei Knoten?
Binärbaum Wie heißt ein Baum mit höchstens zwei Kindern pro Knoten?
Traversierung Wie heißt das systematische Besuchen aller Knoten?





LearningApps


Lückentext

Vervollständige den Text.
Eine hierarchische Datenstruktur mit Knoten und Kanten heißt

. Der oberste Ausgangsknoten wird

genannt. Ein Knoten ohne Kinder heißt

. In einem Binärbaum besitzt jeder Knoten höchstens

Kinder. Ein binärer Suchbaum ordnet kleinere Schlüssel typischerweise im

Teilbaum ein. Bei der

-Traversierung wird der Knoten zwischen linkem und rechtem Teilbaum besucht. Die Levelorder-Traversierung arbeitet

. Die Laufzeit einer Suche hängt wesentlich von der

des Baums ab.




Offene Aufgaben


Leicht

  1. Baumdiagramm: Zeichne eine Baumstruktur mit mindestens acht Knoten und markiere Wurzel, Elternknoten, Kindknoten und Blätter.
  2. Dateisystem: Untersuche eine Ordnerstruktur auf Deinem Gerät und übertrage einen kleinen Ausschnitt als Baumdiagramm.
  3. Binärbaum: Erstelle einen Binärbaum aus frei gewählten Begriffen und prüfe, ob jeder Knoten höchstens zwei Kinder hat.
  4. Fachbegriffe: Gestalte eine Lernkarte, auf der Du Wurzel, Blatt, Tiefe, Höhe und Teilbaum mit eigenen Beispielen erklärst.


Standard

  1. Binärer Suchbaum: Füge die Werte 8, 3, 10, 1, 6, 14, 4 und 7 nacheinander in einen binären Suchbaum ein und dokumentiere jeden Schritt.
  2. Traversierung: Bestimme für Deinen Suchbaum Preorder, Inorder, Postorder und Levelorder und vergleiche die Ergebnisse.
  3. Algorithmus: Formuliere in Pseudocode eine rekursive Preorder-Traversierung und erläutere den Abbruchfall.
  4. Vergleich von Datenstrukturen: Vergleiche eine lineare Liste mit einem balancierten Suchbaum für die Aufgabe, häufig Werte zu suchen.


Schwer

  1. Laufzeitanalyse: Konstruiere zwei Suchbäume mit denselben Schlüsseln, aber sehr unterschiedlicher Höhe, und erkläre die Folgen für die Suche.
  2. AVL-Baum: Recherchiere, warum Balancierung bei Suchbäumen wichtig ist, und stelle das Prinzip eines AVL-Baums in einem eigenen Schaubild dar.
  3. DOM: Untersuche die DOM-Struktur einer einfachen Webseite mit Entwicklerwerkzeugen und dokumentiere einen Teilbaum mit mindestens drei Ebenen.
  4. Programmierung: Implementiere einen einfachen binären Suchbaum mit Einfügen, Suchen und Inorder-Traversierung in einer Programmiersprache Deiner Wahl.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Modellierung: Eine Schule möchte Fächer, Kurse und Lernmaterialien hierarchisch organisieren. Entwirf eine passende Baumstruktur und begründe Deine Wahl der Knotenebenen.
  2. Fehleranalyse: Ein Suchbaum enthält links von einem Knoten einen größeren Schlüssel. Erkläre, welche Eigenschaft verletzt ist und welche Folgen das für die Suche haben kann.
  3. Effizienz: Vergleiche einen balancierten und einen stark entarteten Suchbaum mit gleich vielen Knoten. Erkläre ohne konkrete Messung, warum sich Suchzeiten unterscheiden können.
  4. Traversierung: Wähle für das Ausgeben aller Schlüssel eines binären Suchbaums in aufsteigender Reihenfolge eine Traversierung und begründe Deine Entscheidung.
  5. Transfer: Erkläre an einem selbst gewählten Beispiel außerhalb der Informatik, welche Beziehungen sich sinnvoll als Baum darstellen lassen und wo das Modell an Grenzen stößt.
  6. Algorithmisches Denken: Beschreibe, wie eine Breitensuche und eine Tiefensuche denselben Baum unterschiedlich erkunden und nenne je eine passende Anwendungssituation.




Lernnachweis

Für einen Lernnachweis solltest Du zeigen, dass Du:

  1. die Grundbegriffe einer Baumstruktur sicher und an einem Diagramm erklären kannst,
  2. Binärbäume und binäre Suchbäume unterscheiden kannst,
  3. Suchpfade in einem binären Suchbaum nachvollziehen kannst,
  4. Preorder, Inorder, Postorder und Levelorder korrekt anwenden kannst,
  5. den Einfluss der Baumhöhe auf die Effizienz begründet einschätzen kannst,
  6. eine reale Hierarchie als Baum modellieren und die Grenzen des Modells benennen kannst.




OERs zum Thema



Verknüpfte Lernbereiche


aiMOOC-Projekte