Datenstrukturen und Algorithmen 1. Klausur SS 2003 Mittwoch, 20. August 2003 Name, Vorname: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matrikelnummer: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Studiengang: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bitte Zutreffendes ankreuzen: Vordiplom: Schein: Bitte sorgfältig durchlesen und beachten! Als Hilfsmittel ist nur ein mit Ihrem Namen versehenes, zweiseitig handbeschriebenes DIN A4 Blatt erlaubt. Verwenden Sie kein eigenes Papier, sondern nur die zur Verfügung gestellten Blätter. Prüfen Sie die Vollständigkeit Ihres Klausurexemplares (Deckblatt, 5 Aufgaben, insgesamt 20 Seiten). Zusätzliche Blätter erhalten Sie von der Aufsicht. Legen Sie Ihren Studentenausweis und einen Lichtbildausweis auf den Tisch. Verwenden Sie keinen Rotstift und keinen Bleistift. Schreiben Sie auf das Deckblatt, jede weitere Seite der Klausur und die zusätzlichen Blätter Ihren Namen, Ihren Vornamen und Ihre Matrikelnummer. Viel Erfolg! Bitte nicht beschriften: Aufgabe 1 erreichbare Punkte 10 2 12 3 10 erreichte Punkte 1 von 20 4 10 5 6 ∑ 48 Aufgabe 1 Gegeben sei das folgende Flussnetzwerk mit Quelle q und Senke s. Die Zahlen an den Kanten geben die Kapazität der jeweiligen Kante an. 1 10 q 30 30 20 30 2 3 50 4 s 40 40 10 40 20 5 30 20 6 50 7 Ermitteln Sie im folgenden den maximalen Fluss von q nach s mit dem Ford-FulkersonAlgorithmus. Wählen Sie dabei in jedem Schritt den vergrößernden Weg, der aus den wenigsten Kanten besteht! a) Benutzen Sie die Vordrucke auf den folgenden Seiten, um nach jedem Schritt, das residuale Netzwerk anzugeben. Geben Sie ferner den Weg (Liste der Knoten) und die Größe seines Flusses an, die zu dem jeweiligen residualen Netzwerk geführt haben. [6 Pkt.] b) Tragen Sie in den letzten Vordruck den resultierenden maximalen Fluss ein, indem Sie an die Kanten ihre Flussbelastung schreiben. Geben Sie außerdem den Wert des maximalen Flusses an. [2 Pkt.] c) Zeichnen Sie in den letzten Vordruck einen minimalen q-s-Schnitt ein und geben Sie den Wert des Schnittes an. [1 Pkt.] d) Die Kapazität welcher einen(!) Kante muss um wieviel erhöht werden, damit der maximale Fluss einen Wert von 90 besitzt? [1 Pkt.] 2 von 20 Name, Vorname: Matrikelnummer: Weg mit Fluss ergibt: 1 q 2 3 4 5 6 7 Weg mit Fluss s ergibt: 1 q 2 3 4 5 6 7 3 von 20 s Weg mit Fluss ergibt: 1 q 2 3 4 5 6 7 Weg mit Fluss s ergibt: 1 q 2 3 4 5 6 7 4 von 20 s Name, Vorname: Matrikelnummer: Weg mit Fluss ergibt: 1 q 2 3 4 5 6 7 Weg mit Fluss s ergibt: 1 q 2 3 4 5 6 7 5 von 20 s Weg mit Fluss ergibt: 1 q 2 3 4 5 6 7 s Maximaler Fluss: Minimaler Schnitt S T : S: T: 1 q 2 3 4 5 6 7 6 von 20 s Name, Vorname: Matrikelnummer: 7 von 20 Aufgabe 2 Gesucht ist eine Datenstruktur, die die Operationen insert(x), delete(x), search(x) und smallsum(x) in Zeit O log n unterstützt, wobei die Funktion smallsum(x) das Gesamtgewicht aller Schlüssel angibt, deren Wert kleiner oder gleich x ist. Alle Schlüssel sind paarweise verschieden. a) Beschreiben Sie in wenigen kurzen Sätzen, wie eine solche Datenstruktur und die angegebenen Operationen realisiert werden können. Es soll dabei klar werden, dass die Datenstruktur korrekt arbeitet und dass die gewünschten Laufzeiten erreicht werden. [6 Pkt.] b) Geben Sie die Prozedur smallsum(x) in Pseudocode an. 8 von 20 [6 Pkt.] Name, Vorname: Matrikelnummer: 9 von 20 10 von 20 Name, Vorname: Matrikelnummer: 11 von 20 Aufgabe 3 Auf dem Liborifest gibt es eine neue Attraktion: die Halle der Spiegel, ein Irrgarten. Der Bauplan sieht wie folgt aus: Eingang 1 2 3 5 6 8 12 16 4 9 7 10 11 13 14 15 17 18 19 Ausgang 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. [3 Pkt.] b) Sei r die Anzahl Räume und t die Anzahl Türen. Geben Sie einen Algorithmus findpath(G,e,a) in Pseudo-Code an, der bei Eingabe sowohl des Bauplanes G als auch des Eingangs e und Ausgangs a einen Weg von e nach a ausgibt, auf dem die kleinste Anzahl Türen durchschrit[7 Pkt.] ten werden muss. Ihr Algorithmus soll dabei Laufzeit O r t haben. 12 von 20 Name, Vorname: Matrikelnummer: 13 von 20 14 von 20 Name, Vorname: Matrikelnummer: 15 von 20 Aufgabe 4 Die folgenden Teilaufgaben geben jeweils 2 Punkte bei korrekter Beantwortung. Für falsche Antworten werden keine Abzüge berechnet: a) Es gelte für einen rekursiven Algorithmus T 1 T n 9 und T n 14 T n 4 n2 . Dann gilt Θ n2 Θ nlog4 14 Θ nlog4 14 log n Θ nlog14 4 Θ nlog14 4 log n [2 Pkt.] b) An welche Position wird die Zahl 25 in die folgende Hash-Tabelle eingefügt, wenn wir Open-Addressing mit Double-Hashing verwenden, wobei h 1 x x mod 11 und h2 x x mod 3 1 ist. 23 0 14 1 2 7 4 19 31 6 10 [2 Pkt.] c) Gegeben ist eine Folge von n ganzen Zahlen a1 an für die gilt 1 ai 65536. Welcher der folgenden Sortieralgorithmen hat für diese Folge die kleinste worst-case Laufzeit im OKalkül? Insertionsort Quicksort Bucketsort Bubblesort [2 Pkt.] d) Gegeben sei der folgende ungerichtete, gewichtete Graph G mit gekennzeichnetem Knoten s. Geben Sie an, in welcher Reihenfolge die Kanten bei der Anwendung der Algorithmen von Kruskal und Prim eingefügt werden. 1 5 6 4 2 3 s 7 16 von 20 Name, Vorname: Matrikelnummer: Einfügereihenfolge der Kanten bei: Prim Kruskal [2 Pkt.] e) Gegeben ist folgender AVL-Baum. 30 20 60 25 10 55 50 15 70 80 Zeichnen Sie den Baum, der durch die Operationen INSERT (40) und DELETE (25) entsteht. [2 Pkt.] 17 von 20 18 von 20 Name, Vorname: Matrikelnummer: Aufgabe 5 Die folgenden Aufgaben geben pro richtige Antwort einen Punkt. Für eine falsche Antwort wird ein Punkt abgezogen! Falls keine Antwort angekreuzt wird, so wird auch kein Punkt abgezogen. Weniger als 0 Punkte können bei dieser Aufgabe nicht erreicht werden. a) Die Laufzeit jedes rekursiven Algorithmus kann mit Hilfe des Master-Theorems ermittelt werden. Richtig Falsch [1 Pkt.] b) Für die erwartete Höhe E h eines Elementes einer Skipliste gilt E h 2. Richtig Falsch [1 Pkt.] c) Preorder und Inorder zusammen beschreiben einen binären Wurzelbaum eindeutig. Richtig Falsch [1 Pkt.] d) Es gibt Eingabefolgen, auf denen der modifizierte Bubble-Sort-Algorithmus weniger Vertauschungen durchführt als der normale“ Bubble-Sort-Algorithmus. ” Richtig Falsch [1 Pkt.] e) Beim Einfügen eines Elementes in einen AVL-Baum muss man zur Rebalancierung maximal eine Rotation bzw. Doppelrotation durchführen. Richtig Falsch [1 Pkt.] f) Die Zahlenfolge (8,3,7,1,2,6,5,4) ist ein MAX-HEAP. Richtig Falsch 19 von 20 [1 Pkt.] 20 von 20