Was ist binärbaum?

Binärbaum

Ein Binärbaum ist eine hierarchische Datenstruktur, in der jeder Knoten höchstens zwei Kinder hat, die als "linker Kindknoten" und "rechter Kindknoten" bezeichnet werden. Binärbäume werden in der Informatik häufig für verschiedene Anwendungen eingesetzt, wie z.B. bei der Implementierung von Suchbäumen, Heaps und Huffman-Codierung.

Wichtige Eigenschaften:

  • Wurzel: Der oberste Knoten im Baum.
  • Knoten: Jedes Element im Baum.
  • Kindknoten: Ein Knoten, der direkt unter einem anderen Knoten liegt.
  • Elternknoten: Der Knoten direkt über einem anderen Knoten.
  • Blattknoten: Ein Knoten ohne Kindknoten.
  • Pfad: Eine Folge von Knoten und Kanten, die von einem Knoten zu einem anderen führen.
  • Tiefe: Die Länge des Pfades von der Wurzel zu einem Knoten. Die Wurzel hat die Tiefe 0.
  • Höhe: Die maximale Tiefe eines Knotens im Baum.

Arten von Binärbäumen:

  • Vollständiger Binärbaum: Jeder Knoten außer den Blattknoten hat zwei Kinder und alle Blattknoten befinden sich auf der gleichen Ebene.
  • Fast vollständiger Binärbaum: Alle Ebenen sind vollständig gefüllt, außer möglicherweise der letzten Ebene, die von links nach rechts gefüllt ist.
  • Ausgeglichener Binärbaum: Die Höhe der Unterbäume jedes Knotens unterscheidet sich um höchstens 1. Beispiele hierfür sind AVL-Baum und Rot-Schwarz-Baum.

Traversierung von Binärbäumen:

Es gibt verschiedene Möglichkeiten, einen Binärbaum zu traversieren, d.h. alle Knoten systematisch zu besuchen:

  • Inorder: Linker Teilbaum, Wurzel, Rechter Teilbaum.
  • Preorder: Wurzel, Linker Teilbaum, Rechter Teilbaum.
  • Postorder: Linker Teilbaum, Rechter Teilbaum, Wurzel.
  • Breitensuche (BFS): Knoten werden ebenenweise von links nach rechts besucht.

Anwendungen:

  • Suchbäume: Effizientes Suchen, Einfügen und Löschen von Daten.
  • Heaps: Implementierung von Prioritätswarteschlangen.
  • Huffman-Codierung: Datenkompression.
  • Syntaxbaum: Darstellung der Struktur eines Programms oder einer Formel.