Christian Sohler Paderborn, den 15. Juni 2007
u.v.a. Abgabe 25. Juni 2007
Ubungen zur Vorlesung ¨
Datenstrukturen und Algorithmen SS 2007
Blatt 8
AUFGABE 27:
Betrachten Sie den Algorithmus Heap-Sortaus der Vorlesung. Illustrieren Sie die Arbeits- weise von Heap-Sort am Beispiel des Arrays A=h1,3,6,9,5,8i.
AUFGABE 28:
Auf dem Liborifest gibt es eine neue Attraktion: die Halle der Spiegel, ein Irrgarten.
Der Bauplan sieht wie folgt aus:
Eingang
Ausgang
1 2 3 4
5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
a) Modellieren Sie die Halle der Spiegel mit Hilfe eines Graphen G = (V, E), und stellen Sie diesen mit Hilfe einer Adjazenzliste dar. Nutzen Sie dazu die im Bauplan verwendeten Raumnummern.
b) Sei r die Anzahl R¨aume und t die Anzahl T¨uren. Geben Sie einen Algorithmus find- path(G,e,a) in Pseudocode an, der bei Eingabe sowohl des Bauplanes G als auch des
Eingangs e und Ausgangsa einen Weg von e nach a ausgibt, auf dem die kleinste An- zahl T¨uren durchschritten werden muss. Ihr Algorithmus soll dabei Laufzeit O(r+t) haben.
AUFGABE 29:
Ein Graph G= ({1, . . . ,10}, E) sei durch folgende Adjazenzliste gegeben:
E :
1→8,10 2→6 3→1,6,7 4→10
5→4,10 6→7 7→2
8→9 9→8 10→3
a) Zeichnen Sie den angegebenen Graphen. Wenden Sie dann den Tiefensuchalgorithmus startend bei Knoten 1 auf den Graphen an und geben Sie zu jedem Knoten v die Discovering/Finishing-Times (d[v], f[v]) an. Benutzen Sie dabei die in der Adjazenzliste angegebene Reihenfolge.
b) Geben Sie an, welche Kanten Baum-, R¨uck-, Vorw¨arts- oder Kreuzungskanten sind.
AUFGABE 30:
Beweisen Sie, dass ein beliebiger Graph mit |V|Knoten und |E|Kanten in ZeitO(|V|+|E|) auf die Eigenschaft
”Kreisfreiheit“ getestet werden kann.