Sie sind auf Seite 1von 2

Prof. Dr. Sevag Gharibian 19.

Mai 2022
u.v.a. Abgabe: 30. Mai 2022, 10:59 MESZ (in PANDA)

Datenstrukturen und Algorithmen


Sommersemester 2022
Heimübung 7

Hinweise: Geben Sie die Lösung online über PANDA als PDF ab. Nutzen Sie hierzu am Besten
LATEX (In PANDA finden Sie eine Vorlage). Eingescannte, handschriftliche Lösungen sind eben-
falls möglich, solange sie gut lesbar sind. Unleserliche Abgaben führen zu Punktabzug.
Sie können in einer Gruppe mit bis zu 4 Teilnehmern abgeben. Schreiben Sie die Namen und
(Uni-)Mail-Adressen aller Gruppenmitglieder gut sichtbar in ihre Abgabe.

AUFGABE 1 (6 Punkte):
Erweitern Sie die binären Suchbäume um die Funktionen Pred(x) und Succ(x), die für einen
Knoten x den Vorgänger bzw. den Nachfolger key(x) zurückgeben (oder N IL, falls key(x) der
kleinste bzw. größte Schlüssel ist). Beide Funktionen sollen jeweils Zeit O(1) benötigen. Erweitern
Sie dazu die Knoten um weitere Informationen bzw. Funktionen und passen Sie die Operationen
Einfügen und Löschen entsprechend an. Dabei darf sich die Laufzeit der Operationen Einfügen
und Löschen jedoch nur um eine Konstante erhöhen. Das heißt, sie dürfen nur eine konstante
Anzahl an Basisoperationen hinzufügen.

AUFGABE 2 (2 Punkte):
Attilla, Til und Xavı́er lassen sich nicht durch ihren Rückschlag von letzter Woche nicht beirren
und forschen weiterhin nach schnelleren Datenstrukturen. Sie präsentieren folgende bemerkens-
werte Eigenschaft von binären Suchbäumen: Angenommen, eine Suche nach einem Schlüssel k
in einem binären Suchbaum endet in einem Blatt, dann betrachte die folgenden drei Mengen:

a) S, die Knoten auf dem Suchpfad.

b) L, die Knoten links vom Suchpfad, also L := {l ∈ T |∃ s ∈ S : lc(s) = l}

c) R, die Knoten rechts vom Suchpfad, also R := {r ∈ T |∃ s ∈ S : rc(s) = r}

Sie behauten nun, dass für alle Tripel von l ∈ L, s ∈ S und r ∈ R gilt:

key(l) ≤ key(s) ≤ key(r).

Widerlegen Sie auch diese die Aussage!

AUFGABE 3 (7 Punkte):
Entwickeln Sie einen Algorithmus, der bei Eingabe eines binären Suchbaumes T mit n Elementen
in Zeit O(n) eine doppelt verkettete Liste zurückgibt, welche die Elemente von T in aufsteigend
sortierter Reihenfolge enthält.

a) Beschreiben Sie hierfür kurz die Idee Ihres Algorithmus und geben Sie diesen anschließend
in Pseudocode an.
b) Beweisen Sie die Korrektheit Ihres Algorithmus.

c) Argumentieren Sie kurz, warum der Algorithmus die geforderte Laufzeitschranke einhält.

Hinweis: Nutzen Sie hier nicht ihren modifizierten Baum aus Aufgabe 1, sondern die unmodifi-
zierte Variante aus der Vorlesung!

Das könnte Ihnen auch gefallen