Sie sind auf Seite 1von 2

Prof. Dr.

Holger Peine Datenstrukturen und Algorithmen - Übungsblatt 5 - SS2015


Prof. Dr. Holger Peine
DSA - Übungsblatt 5 Hochschule Hannover

SS 2015 (Stand 2015-05-07 17:50) Fakultät IV – Abteilung Informatik


Raum 334, Tel. 0511-9296-1830
Holger.Peine@hs-hannover.de

Thema
Baumdurchläufe

Spätester Termin
… für die Vorführung der Pflichtaufgabe (18): Mi. 20.05.2015.

Aufgaben mit Punkten sollten Sie bevorzugt bearbeiten, da sie sich mit zentralen Themenstellungen
auseinandersetzen. Weitere Übungsaufgaben (0 Punkte) dienen der Vertiefung spezieller Teilbereiche. Es gilt: Die
Inhalte aller Übungsaufgaben und aller Vorlesungen sind Gegenstand der Prüfung.

Aufgabe 17: Binäre Bäume (0 Punkte)


a) Zeichnen Sie ein binären Baum, der einen arithmetischen Ausdruck repräsentiert (d.h. innere
Knoten speichern Operatoren, Blätter speichern Zahlen), so dass höchstens die Zahlen 1, 5, 6
und 7 als Blätter verwendet werden und genau drei innere Knoten. Der Wert des gesamten
Ausdrucks soll 21 sein. Operatoren und Zahlen dürfen auch mehrfach verwendet werden.
b) Zeichnen Sie einen binären Baum, in dem jedes Blatt und jeder innere Knoten einen Buchstaben
speichert. Ein Preorder-Durchlauf soll die Buchstabenfolge EXAMFUN und ein Inorder-Durchlauf
desselben Baums die Folge MAFXUEN ergeben. Geben Sie nicht nur das Ergebnis an, sondern
beschreiben Sie auch, in welchen Schritten Sie dorthin gekommen sind.
c) Beschreiben Sie einen Algorithmus in Pseudo-Code oder Java, der zu einem gegebenen binären
Baum T (der die Definition des ADT BinaryTree erfüllt) und einem Knoten v in T, den
Präorder-Nachfolger (preorderNext) von v in T bestimmt. Der Präorder-Nachfolger von v in
T ist definiert als derjenige Knoten w, der bei einem Präorder-Durchlauf durch T direkt nach v
besucht wird. Gibt es keinen solchen Knoten w, so soll der Algorithmus NULL zurückgeben.

Aufgabe 18: Allgemeine Bäume (2 Punkte)


a) Ist es in einem allgemeinen Baum T möglich, dass der Postorder- und der Präorder-Durchlauf alle
Knoten in derselben Reihenfolge besuchen? Warum oder warum nicht? Ändert sich die Antwort,
wenn T ein binärer Baum ist? Begründen Sie Ihre Antworten!

Stand 2015-05-07 17:50 Seite 1 von 2


Prof. Dr. Holger Peine Datenstrukturen und Algorithmen - Übungsblatt 5 - SS2015

b) Implementieren Sie einen Algorithmus in Java, der zu einem allgemeinen Baum T die so genannte
eingerückte Klammerdarstellung von T ausgibt. Die eingerückte Klammerdarstellung eines
Baumes sieht wie folgt aus:
 In jeder Zeile steht der Inhalt genau eines Knotens beginnend mit der Wurzel
 Der Inhalt der Wurzel hat keine Einrückung
 Die Inhalte der anderen Ebenen haben eine Einrückung von 2 Leerzeichen pro Ebene, die
sie tiefer als die Wurzel sind.
 Nachfolger eines Knoten werden nach diesem in runden Klammern ausgegeben. Die
Klammern können entweder in derselben oder einer eigenen Zeile stehen.
Testen Sie Ihren Algorithmus mit dem Code in uebungen.aufgabe17_18.
TreeTools.java. Was ist die Laufzeitklasse Ihres Algorithmus und warum?

Beispiel-Baum:

Verkauf

National International

Südeuropa Nordeuropa Übersee

Asien Afrika Amerika Australien

Mögliche Ausgabe:
Verkauf (
National
International (
Südeuropa
Nordeuropa
Übersee (
Asien
Afrika
Amerika
Australien
)
)
)

Stand 2015-05-07 17:50 Seite 2 von 2

Das könnte Ihnen auch gefallen