Binäre Suchbäume Flashcards

1
Q

Welche Höhe hat ein BST im Besten und im schlechtesten Fall?

A
  • Vollstädniger BST mit n Knoten hat eine Höhe von Θ(lg n)
  • Schlechtester Fall ist eine lineare Liste mit N Knoten hat dieser eine Höhe von Θ(n)
  • Mit Rot-Schwarz und B Bäumen kann man den Best-case garantieren
  • Auch randomized BST zeigen gutes Laufzeitverhalten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Attribute hat ein Knoten in einem Baum?

A
  • key (und evtl. Satellitendaten)
  • left: linker Nachfloger (Kind bzw. linker Teilbaum)
  • right: rechter Nachfolger (Kind bzw. rechter Teilbaum)
  • p: zeigt zum Elternknoten. p[root[T]] = NIL
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was gibt die Inorder Traversierung aus?

A

Beim BST gibt die Inorder Traversierung eine Sortierte Liste aus und hat eine Laufzeit von Θ(n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie sucht man in einem Binären Suchbaum und wie ist die Laufzeit?

A
  • Man vergleicht mit dem aktuellen Knoten
  • Ist es größer macht man mit dem rechten Teilbaum weiter
  • Ist es kleiner macht man mit dem linken Teilbaum weiter
  • Ist es gleich ist die Suche beendet
  • Laufzeit O(h), h = Baumhöhe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie erhält man das Minimum oder das Maximum eines Baumes?

A
  • Minimum Blatt des linkesten Teilbaums
  • Maximum Blatt des rechtesten Teilbaums
  • Beides ist in O(h), h = Baumhöhe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie erhält man den Nachfolger eines Elements?

A
  • Hat der Knoten einen rechten Teilbaum dann das kleinste Element in diesem
  • Ansonsten gehe von unten nach Oben durch und der Nachfolger ist der parent-Knoten des ersten Knotens der ein linker Teilbaum ist (sich selbst eingeschlossen)
  • Das Maximum hat keinen Nachfolger
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie erhält man den Vorgänger eines Elements?

A
  • Hat der knoten einen linken Teilbaum dann das größte Element in diesem
  • Ansonsten gehe von unten nach Oben durch und der Vorgänger ist der parent-Knoten des ersten Knotens der ein rechter Teilbaum ist (sich selbst eingeschlossen)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie fügt man ein Element in den Baum ein?

A
  • Zuerst setzt man vom einzufügenden Element beide Kinder auf NIL
  • Dann macht man wie bei BTS Search vergleiche bis man am Ende des Baumes ist
  • Dort fügt man das Blatt ein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie löscht man ein Element aus einem Baum?

A
  • Es gibt 3 Fälle
    1. Z hat kein Kind
  • Lösche Z, indem der Elternknoten von z auf NIL zeigt, anstatt auf z
    2. Z hat ein Kind
  • Lösche z, indem der Elternknoten von z auf das Kind von z zeigt, anstatt auf z
    3. Z hat zwei Kinder
  • Der Nachfolger von z wird zum neuen Knoten und hat entweder ein oder kein Kind
  • Hat der Nachfolger von z ein Kind muss der rechteste Teilbaum von diesem mit dem rechten Kind von z verbunden werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly