StudySmarter - Die all-in-one Lernapp.
4.8 • +11k Ratings
Mehr als 5 Millionen Downloads
Free
Americas
Europe
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.
Entdecke über 50 Millionen kostenlose Lernmaterialien in unserer App.
Lerne mit deinen Freunden und bleibe auf dem richtigen Kurs mit deinen persönlichen Lernstatistiken
Jetzt kostenlos anmeldenIm 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.
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.
Links Kind | Eltern | Rechts Kind |
Kleinerer Wert | Knoten Wert | Größerer Wert |
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.
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.
Beispiel eines entarteten Baums: 1 \ 2 \ 3 \ 4 \ 5In 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.
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; }
15 / \ 10 20 / \ / \ 8 12 16 25Beachte, 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.
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 } }
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; } }
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.
Karteikarten in Binärer Suchbaum46
Lerne jetztWas ist ein AVL Baum?
Ein AVL Baum ist ein ausgeglichener binärer Suchbaum, wobei sich für jeden Knoten die Höhen seines linken und rechten Teilbaumes um maximal eins unterscheiden.
Die Höhe eines AVL Baumes beträgt O (log n)
Wahr
Aus welcher Formel ergibt sich der Balancefaktor?
Höhe (rechter Teilbaum) - Höhe (linker Teilbaum) ∈ {-1, 0, 1}
Bei welchem Balancefaktor hat man einen ausgeglichenen Baum?
0
Welche Rotation wendest Du an wenn vO gleich -2 und vU gleich 1 ist?
L-R-Rotation
Welche Rotation wendest Du an wenn vO gleich 2 und vU gleich 1 ist?
L-Rotation
Du hast bereits ein Konto? Anmelden
Open in AppDie erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.
Melde dich an für Notizen & Bearbeitung. 100% for free.
Speichere Erklärungen in deinem persönlichen Bereich und greife jederzeit und überall auf sie zu!
Mit E-Mail registrieren Mit Apple registrierenDurch deine Registrierung stimmst du den AGBs und der Datenschutzerklärung von StudySmarter zu.
Du hast schon einen Account? Anmelden