Binärer Suchbaum

Im Fachbereich der Informatik nimmt der Binäre Suchbaum eine entscheidende Rolle ein. Mit diesem informativen Artikel erhältst du eine umfassende Einführung in die Welt der Binären Suchbäume - der Definition, deren Eigenschaften und Anwendung sowie den möglichen Nachteilen. Weiterhin wird detailliert auf den Prozess der Erstellung eines Binären Suchbaums eingegangen, unterstützt durch konkrete Beispiele und Anleitungen. Der Artikel schließt mit wichtigen Operationen ab, darunter das Einfügen und Löschen von Elementen und einem Codierungsbeispiel in Java für einen Binären Suchbaum.

Los geht’s

Scanne und löse jedes Fach mit AI

Teste unseren Hausaufgabenhelfer gratis Homework Helper
Avatar

Lerne mit Millionen geteilten Karteikarten

Leg kostenfrei los

Schreib bessere Noten mit StudySmarter Premium

PREMIUM
Karteikarten Spaced Repetition Lernsets AI-Tools Probeklausuren Lernplan Erklärungen Karteikarten Spaced Repetition Lernsets AI-Tools Probeklausuren Lernplan Erklärungen
Kostenlos testen

Geld-zurück-Garantie, wenn du durch die Prüfung fällst

Did you know that StudySmarter supports you beyond learning?

SS Benefits Icon

Find your perfect university

Get started for free
SS Benefits Icon

Find your dream job

Get started for free
SS Benefits Icon

Claim big discounts on brands

Get started for free
SS Benefits Icon

Finance your studies

Get started for free
Sign up for free and improve your grades

Review generated flashcards

Leg kostenfrei los
Du hast dein AI Limit auf der Website erreicht

Erstelle unlimitiert Karteikarten auf StudySmarter

StudySmarter Redaktionsteam

Team Binärer Suchbaum Lehrer

  • 10 Minuten Lesezeit
  • Geprüft vom StudySmarter Redaktionsteam
Erklärung speichern Erklärung speichern
Melde dich kostenlos an, um Karteikarten zu speichern, zu bearbeiten und selbst zu erstellen.
Leg jetzt los Leg jetzt los
  • Geprüfter Inhalt
  • Letzte Aktualisierung: 12.10.2023
  • 10 Minuten Lesezeit
Inhaltsverzeichnis
Inhaltsverzeichnis
  • Geprüfter Inhalt
  • Letzte Aktualisierung: 12.10.2023
  • 10 Minuten Lesezeit
  • Inhalte erstellt durch
    Lily Hulatt Avatar
  • überprüft von
    Gabriel Freitas Avatar
  • Inhaltsqualität geprüft von
    Gabriel Freitas Avatar
Melde dich kostenlos an, um Karteikarten zu speichern, zu bearbeiten und selbst zu erstellen.
Erklärung speichern Erklärung speichern

Danke für dein Interesse an Audio-Lernen!

Die Funktion ist noch nicht ganz fertig, aber wir würden gerne wissen, warum du Audio-Lernen bevorzugst.

Warum bevorzugst du Audio-Lernen? (optional)

Feedback senden
Als Podcast abspielen 12 Minuten

Teste dein Wissen mit Multiple-Choice-Karteikarten

1/3

Was ist das charakteristische Merkmal eines Binärer Suchbaums?

1/3

Was passiert im Binären Suchbaum, wenn du auf einen Null-Knoten stößt?

1/3

Wie legst du fest, in welche Richtung du im Binären Suchbaum navigierst, wenn du einen neuen Knoten einfügst?

Weiter

Was ist ein Binärer Suchbaum?

Ein binärer Suchbaum (BST) ist eine Datenstruktur, deren Design durch die folgende Eigenschaft gekennzeichnet ist: Jeder Knoten hat maximal zwei Kindknoten, oft als linkes Kind und rechtes Kind bezeichnet. Ein signifikantes Merkmal eines binären Suchbaums ist, dass der Schlüssel in jedem Knoten größer oder gleich den Schlüsseln in den Knoten seines linken Unterbaums ist und kleiner oder gleich den Schlüsseln in den Knoten seines rechten Unterbaums.

Ein Binärer Suchbaum steht für eine hierarchische Struktur, bei der jeder Knoten maximal zwei Kinder (links und rechts) hat und die Knoten so angeordnet sind, dass der linke Kindknoten einen kleineren und der rechte Kindknoten einen größeren Wert als der Elternknoten hat.

Binärer Suchbaum Eigenschaften

Die Organisation eines binären Suchbaums ermöglicht schnelle Suchoperationen, da man bei der Suche immer nur einen der beiden Teile des Baumes durchsuchen muss. Die folgenden Eigenschaften sind typisch für diese Datenstruktur:
  • Der Wert des linken Kindknotens ist immer kleiner als der des Elternknotens.
  • Der Wert des rechten Kindknotens ist immer größer als der des Elternknotens.
  • Diese Eigenschaften gelten für jeden Knoten im Baum.
Links KindElternRechts Kind
Kleinerer WertKnoten WertGrößerer Wert
Diese Struktur macht binäre Suchbäume besonders geeignet für Operationen wie Suchen, Einfügen und Löschen.

Zum Beispiel, wenn Ihr Baum Werte enthält wie 15 (Root), 10 (linkes Kind), 20 (rechtes Kind), dann ist 10 kleiner als 15 und 20 ist größer als 15, was die Eigenschaften eines binären Suchbaums erfüllt.

Binärer Suchbaum Anwendung

Binäre Suchbäume werden in vielen Bereichen eingesetzt, von Datenbanken und Grafikanwendungen bis hin zu Routing und Bandbreitenmanagement in Netzwerken. Infolge seiner organisierten Struktur ermöglicht der binäre Suchbaum:
  • Schnelles Suchen
  • Geordnetes Durchlaufen
  • Einfügen und Löschen von Elementen
Ein Beispiel für die Anwendung von binären Suchbäumen ist die Implementierung von Sortieralgorithmen. BSTs werden oft verwendet, um Vorgänge wie Sortieren und Prioritäts-Warteschlangen effizient zu verwalten.

Wusstest du, dass der B-Baum, der in vielen Datenbanksystemen und Dateisystemen verwendet wird, tatsächlich eine Art von binärem Baum ist? Bei einem B-Baum wird eine Erweiterung des Konzepts des binären Baums verwendet, um eine höhere Anzahl von Kindern als zwei zuzulassen, was mehr Flexibilität und Effizienz bei großen Datensätzen bietet.

Binärer Suchbaum Nachteile

Während binäre Suchbäume viele Vorteile bieten, ist es wichtig, ihre möglichen Nachteile zu kennen:
  • Im schlechtesten Fall können Operationen wie das Einfügen oder Suchen nach einem Knoten eine Zeitkomplexität von O(n) haben, wenn der Baum in eine Listenstruktur entartet. Dies geschieht, wenn die eingefügten Schlüssel bereits geordnet sind.
  • Binäre Suchbäume können unausgewogen werden und erfordern Rebalancing-Techniken, was zusätzliche Komplexität hinzufügt.
Beispiel eines entarteten Baums:

 1
  \
   2
    \
     3
      \
       4
        \
         5
In diesem Fall funktioniert der binäre Suchbaum wie eine verkettete Liste und die Vorteile der Baumstruktur gehen verloren. Deshalb werden oft selbstbalancierende binäre Suchbäume verwendet, wie AVL-Bäume oder Rot-Schwarz-Bäume, die sicherstellen, dass der Baum nach jeder Einfüge- oder Löschoperation balanciert bleibt.

Schließe dich mit deinen Freunden zusammen, und habt Spaß beim Lernen

Kostenlos registrieren
Binärer Suchbaum

Wie erstellst du einen Binärer Suchbaum?

Die Erstellung eines binären Suchbaums konzentriert sich auf die Einhaltung der Grundprinzipien dieser Datenstruktur. Jeder eingefügte Knoten muss auf der Grundlage seines Schlüsselwerts korrekt positioniert werden. Fügst du einen Knoten in den Baum ein, ist es wichtig, die Struktur des Baums zu durchlaufen, beginnend bei der Wurzel und nach links oder rechts zu bewegen, abhängig davon, ob der neue Knoten einen kleineren oder größeren Schlüsselwert hat.

Binärer Suchbaum erstellen: Anleitung

Die genaue Anwendung kann je nach verwendetem Programmiersprache variieren, das zugrunde liegende Prinzip bleibt jedoch gleich. Hier ist eine schrittweise Anleitung, wie du einen binären Suchbaum erstellst: 1. Starte mit einem leeren Baum. Dies bedeutet im Allgemeinen, dass du eine Wurzelvariable erstellst, die auf null gesetzt ist. 2. Füge Knoten in den Baum ein. Dies erfolgt normalerweise durch eine Operation, die als "Einfügen" bezeichnet wird. 3. Beginne beim Einfügen eines Knotens an der Wurzel. Wenn der Baum leer ist, wird die Wurzel auf den neuen Knoten gesetzt. 4. Wenn der Baum nicht leer ist, verwende den Schlüsselwert des Knotens, um zu bestimmen, wo der Knoten eingefügt wird. Wenn der Schlüsselwert des Knotens kleiner ist als der des aktuellen Knotens, fahre mit dem linken Kindknoten fort. Wenn der Schlüsselwert größer ist, fahre mit dem rechten Kindknoten fort. 5. Wiederhole den vorherigen Schritt, bis du einen Null-Knoten erreichst, d.h. einen freien Platz im Baum. Dort wird der neue Knoten platziert.
Beispielcode:

function insert(node, key) {
  if (node === null) {
    return newNode(key);
  }
  if (key < node.key) {
    node.left = insert(node.left, key);
  } else if (key > node.key) {
    node.right = insert(node.right, key); 
  }
  return node;
}

Lerne mit Millionen geteilten Karteikarten

Kostenlos registrieren
Binärer Suchbaum

Binärer Suchbaum Beispiel

Angenommen, du möchtest die Werte [15, 10, 20, 8, 12, 16, 25] in einem binären Suchbaum ablegen. Hier ist, wie du vorgehen würdest: 1. Der erste Wert ist 15. Da der Baum leer ist, setze 15 als Wurzel des Baums. 2. Der nächste Wert ist 10, der kleiner als 15 ist. Daher füge diesen Wert als linkes Kind der Wurzel hinzu. 3. Der nächste Wert ist 20, der größer als 15 ist. Daher füge diesen Wert als rechtes Kind der Wurzel hinzu. 4. Der nächste Wert ist 8, der kleiner als 15 und auch kleiner als 10 ist. Daher füge diesen Wert als linkes Kind des Knotens mit dem Wert 10 hinzu. 5. Und so weiter...
  15
 /  \
10   20
/ \  /  \
8 12 16  25
Beachte, dass in diesem Beispiel jeder Knoten die Eigenschaften eines binären Suchbaums erfüllt: für jeden Knoten sind alle Werte in seinem linken Unterbaum kleiner und alle Werte in seinem rechten Unterbaum größer als der eigene Wert.
Beispiel Angenommen, du hast einen binären Suchbaum und du möchtest den Wert 14 einfügen. Du würdest mit der Wurzel beginnen und dich nach links bewegen (weil 14 kleiner als 15 ist), dann nach rechts (weil 14 größer als 10 ist). Da es kein rechtes Kind von 10 gibt, würdest du hier den neuen Knoten einfügen.

Binärer Suchbaum Operationen

Um einen Binären Suchbaum (BST) effektiv nutzen zu können, ist es wichtig, die grundlegenden Operationen zu verstehen, die auf diese Datenstruktur angewendet werden können. Diese Operationen umfassen das Einfügen eines neuen Knotens, das Löschen eines existierenden Knotens und das Durchsuchen des Baums nach einem bestimmten Wert.

Finde relevante Lernmaterialien und bereite dich auf den Prüfungstag vor

Kostenlos registrieren
Binärer Suchbaum

Binärer Suchbaum einfügen: Schritt-für-Schritt Anleitung

Um einen neuen Knoten in einem binären Suchbaum richtig einzufügen, sind die folgenden Schritte erforderlich: 1. Beginne mit der Wurzel des Baums. Wenn der Baum noch leer ist, dann ist der einzufügende Knoten der Wurzelknoten. 2. Falls der Baum nicht leer ist, dann vergleiche den einzufügenden Schlüssel mit dem Schlüssel des Wurzelknotens. 3. Ist der einzufügende Schlüssel kleiner als der des Wurzelknotens, gehe zum linken Unterbaum und wiederhole den Vorgang. 4. Ist der einzufügende Schlüssel größer als der des Wurzelknotens, gehe zum rechten Unterbaum und wiederhole den Vorgang.
function insertNode(node, newNode) { 
  if(newNode.data < node.data) { 
    if(node.left === null) 
      node.left = newNode; 
    else
      insertNode(node.left, newNode);  //Recursive call
  } else { 
    if(node.right === null) 
      node.right = newNode; 
    else
      insertNode(node.right, newNode);  //Recursive call
  } 
} 

Wie kannst du Elemente in Binärer Suchbaum löschen?

Die Operation zum Löschen von Knoten ist etwas komplexer. Es gibt drei verschiedene Fälle, die zu berücksichtigen sind: 1. Der zu löschende Knoten ist ein Blattknoten (hat keine Kinder). In diesem Fall kann der Knoten einfach entfernt werden. 2. Der zu löschende Knoten hat genau ein Kind. In diesem Fall kann der Knoten entfernt werden und der einzige Kindknoten nimmt seinen Platz ein. 3. Der zu löschende Knoten hat zwei Kinder. In diesem Fall muss der Knoten, der den zu löschenden Knoten ersetzen soll, sorgfältig ausgewählt werden. Typischerweise wird dieser Ersatzknoten ("Nachfolger") der kleinste Knoten des rechten Unterbaums oder der größte Knoten des linken Unterbaums sein.
function removeNode(node, key) {
  if(node === null) 
    return null; 
  else if(key < node.data) { 
    node.left = removeNode(node.left, key); 
    return node; 
  } else if(key > node.data) { 
    node.right = removeNode(node.right, key); 
    return node; 
  } else { 
    if(node.left === null && node.right === null) // case 1 - leaf node
      node = null; 
    else if(node.left === null)  // case 2 - one child
      node = node.right; 
    else if(node.right === null) // case 2 - one child
      node = node.left;
    else { //Case 3 - two children
      var aux = findMinNode(node.right); 
      node.data = aux.data;
      node.right = removeNode(node.right, aux.data); 
    } 
    return node; 
  } 
} 

Bleib immer am Ball mit deinem smarten Lernplan

Kostenlos registrieren
Binärer Suchbaum

Binärer Suchbaum in Java: Codierungsbeispiel

Die Implementierung eines binären Suchbaums in Java kann unter Verwendung von Klassen und Objekten durchgeführt werden. Jeder Knoten des Baums kann als eigenständiges Objekt mit Attributen für den Schlüsselwert, den linken Kindknoten und den rechten Kindknoten repräsentiert werden. Im folgenden Beispiel wird eine einfache Implementierung eines solchen BST in Java gezeigt.
class Node { 
  int key; 
  Node left, right; 

  public Node(int item) { 
    key = item; 
    left = right = null; 
  } 
} 

class BinaryTree { 
 Node root; 

 BinaryTree(int key) { 
  root = new Node(key); 
 } 

 BinaryTree() { 
  root = null; 
 } 
  
 void insert(int key) { 
  root = insert_rec(root, key); 
 } 

 Node insert_rec(Node root, int key) { 
  if (root == null) { 
   root = new Node(key); 
   return root; 
 }
 if (key < root.key) 
  root.left = insert_rec(root.left, key); 
 else if (key > root.key) 
  root.right = insert_rec(root.right, key);
 return root; 
}
In diesem Code ist die BinaryTree Klasse ein binärer Suchbaum und die Node Klasse repräsentiert einen Knoten im binären Suchbaum. Der insert() Methodenaufruf ist eine Wrapper-Methode für die rekursive Hilfsmethode insert_rec(), die zum Einfügen neuer Knoten verwendet wird.

Binärer Suchbaum - Das Wichtigste

  • Binärer Suchbaum ist eine Datenstruktur mit maximal zwei Kindknoten pro Knoten
  • Der linke Kindknoten hat immer einen kleineren, der rechte einen größeren Wert als der Elternknoten
  • Binäre Suchbäume sind nützlich für schnelle Such-, Einfüge- und Löschoperationen
  • Anwendungen umfassen Datenbanken, Routing, Bandbreitenmanagement und Implementierung von Sortieralgorithmen
  • Nachteile sind entartete Listenstruktur bei geordneten Schlüsseln und Bedarf an Rebalancing
  • Ein neuer Knoten wird eingefügt, indem man von der Wurzel ausgehend entweder nach links oder rechts geht, je nachdem, ob der Schlüsselwert kleiner oder größer ist
  • Knotenlöschung beinhaltet drei Fälle: kein Kindknoten, ein Kindknoten und zwei Kindknoten
  • Java-Implementierung eines Binären Suchbaums geschieht durch Klassen und Objekte
Lerne schneller mit den 12 Karteikarten zu Binärer Suchbaum

Melde dich kostenlos an, um Zugriff auf all unsere Karteikarten zu erhalten.

Binärer Suchbaum
Häufig gestellte Fragen zum Thema Binärer Suchbaum
Wann ist ein Baum ein binärer Suchbaum?
Ein Baum ist ein binärer Suchbaum, wenn er folgende Eigenschaften erfüllt: Jeder Knoten hat höchstens zwei Kindknoten. Alle Elemente im linken Unterbaum eines Knotens sind kleiner als der Knoten selbst und alle Elemente im rechten Unterbaum sind größer.
Welche Eigenschaften besitzt ein binärer Suchbaum?
Ein binärer Suchbaum hat folgende Eigenschaften: Jeder Knoten hat höchstens zwei Kindknoten. Alle Werte im linken Unterbaum eines Knotens sind kleiner als der Wert des Knotens. Und alle Werte im rechten Unterbaum sind größer als der Wert des Knotens.
Erklärung speichern
Wie stellen wir sicher, dass unser Content korrekt und vertrauenswürdig ist?

Bei StudySmarter haben wir eine Lernplattform geschaffen, die Millionen von Studierende unterstützt. Lerne die Menschen kennen, die hart daran arbeiten, Fakten basierten Content zu liefern und sicherzustellen, dass er überprüft wird.

Content-Erstellungsprozess:
Lily Hulatt Avatar

Lily Hulatt

Digital Content Specialist

Lily Hulatt ist Digital Content Specialist mit über drei Jahren Erfahrung in Content-Strategie und Curriculum-Design. Sie hat 2022 ihren Doktortitel in Englischer Literatur an der Durham University erhalten, dort auch im Fachbereich Englische Studien unterrichtet und an verschiedenen Veröffentlichungen mitgewirkt. Lily ist Expertin für Englische Literatur, Englische Sprache, Geschichte und Philosophie.

Lerne Lily kennen
Inhaltliche Qualität geprüft von:
Gabriel Freitas Avatar

Gabriel Freitas

AI Engineer

Gabriel Freitas ist AI Engineer mit solider Erfahrung in Softwareentwicklung, maschinellen Lernalgorithmen und generativer KI, einschließlich Anwendungen großer Sprachmodelle (LLMs). Er hat Elektrotechnik an der Universität von São Paulo studiert und macht aktuell seinen MSc in Computertechnik an der Universität von Campinas mit Schwerpunkt auf maschinellem Lernen. Gabriel hat einen starken Hintergrund in Software-Engineering und hat an Projekten zu Computer Vision, Embedded AI und LLM-Anwendungen gearbeitet.

Lerne Gabriel kennen

Entdecke Lernmaterialien mit der kostenlosen StudySmarter App

Kostenlos anmelden
1
Über StudySmarter

StudySmarter ist ein weltweit anerkanntes Bildungstechnologie-Unternehmen, das eine ganzheitliche Lernplattform für Schüler und Studenten aller Altersstufen und Bildungsniveaus bietet. Unsere Plattform unterstützt das Lernen in einer breiten Palette von Fächern, einschließlich MINT, Sozialwissenschaften und Sprachen, und hilft den Schülern auch, weltweit verschiedene Tests und Prüfungen wie GCSE, A Level, SAT, ACT, Abitur und mehr erfolgreich zu meistern. Wir bieten eine umfangreiche Bibliothek von Lernmaterialien, einschließlich interaktiver Karteikarten, umfassender Lehrbuchlösungen und detaillierter Erklärungen. Die fortschrittliche Technologie und Werkzeuge, die wir zur Verfügung stellen, helfen Schülern, ihre eigenen Lernmaterialien zu erstellen. Die Inhalte von StudySmarter sind nicht nur von Experten geprüft, sondern werden auch regelmäßig aktualisiert, um Genauigkeit und Relevanz zu gewährleisten.

Erfahre mehr
StudySmarter Redaktionsteam

Team Informatik Lehrer

  • 10 Minuten Lesezeit
  • Geprüft vom StudySmarter Redaktionsteam
Erklärung speichern Erklärung speichern

Lerne jederzeit. Lerne überall. Auf allen Geräten.

Kostenfrei loslegen

Melde dich an für Notizen & Bearbeitung. 100% for free.

Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App!

Die erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.

  • Karteikarten & Quizze
  • KI-Lernassistent
  • Lernplaner
  • Probeklausuren
  • Intelligente Notizen
Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App!
Sign up with GoogleSign up with Google
Mit E-Mail registrieren

Schließ dich über 30 Millionen Studenten an, die mit unserer kostenlosen StudySmarter App lernen

Die erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.

Intent Image
  • Intelligente Notizen
  • Karteikarten
  • AI-Assistent
  • Lerninhalte
  • Probleklausuren