Prof. Dr. Lutz Plümer Dr. Gerhard Gröger Name: _______________________ Matrikel-Nr.: _______________________ Klausur „Diskrete Mathematik“, SS 02 2. Termin, 10. 10. 2002 1. (35 Punkte) Gegeben sei die folgende Adjazenzmatrix für die gerichteten Kanten in einem Graphen mit den Knoten A, B, C, D, E und F. Es führt z.B. eine Kante mit Kosten 7 von A nach B, eine Kante mit Kosten 12 von A nach D, eine mit Kosten 2 von A nach E, usw. A B C D E F A 0 7 12 2 B 0 1 4 C 0 8 D 0 E 3 0 F 2 0 1.1. Zeichnen Sie den Graphen, der der Matrix entspricht. 1.2. In der Vorlesung wurde der Algorithmus von Floyd mit einer Erweiterung, die neben der Länge kürzester Wege auch die Knoten dieser Wege ermittelt, vorgestellt. Wenden Sie diesen erweiterten Algorithmus von Floyd auf die obige Adjazenzmatrix an. Es reicht aus, nur die beiden Ergebnismatrices – die mit den kürzesten Weglängen (Kostenmatrix) und die mit den optimalen Wegpunkten (Wegematrix) – anzugeben. 1.3. Wenden Sie das in der Vorlesung vorgestellte Verfahren zur Ausgabe des kürzesten Weges aus der Wegematrix auf die in 1.2. ermittelte Wegematrix an, um die Folge der Knoten des kürzesten Weges von Knoten A zu Knoten D zu erhalten. Welche aus der Vorlesung bekannte Datenstruktur ist geeignet, die Struktur der Berechnung und Ausgabe dieses kürzesten Weges – wie sie sich bei Anwendung des Verfahrens ergibt – zu beschreiben? Skizzieren Sie den Ablauf des Verfahrens der Ausgabe des kürzesten Weges von A nach D unter Verwendung dieser Datenstruktur. 2. (35 Punkte) Fügen Sie die Zahlen nacheinander in dieser Reihenfolge in einen anfangs leeren AVL-Baum ein: 50 66 33 15 7 90 40 35 95 70 69 4 3 Stellen Sie dabei durch Anwendung der in der Vorlesung eingeführten Operationen sicher, dass nach jedem Einfügen wieder ein AVL-Baum vorliegt. Skizzieren Sie den AVL-Baum nach jedem Einfügen und benennen Sie die Operationen. Seite 1 von 2 3. (20 Punkte) Wenden Sie den in der Vorlesung vorgestellten Scan-Line-Algorithmus an, um die Schnittpunkte zwischen den Segmenten in der Abbildung zu ermitteln. Beschreiben Sie dabei exakt den Inhalt der beiden Datenstrukturen (sortierte Liste der Haltepunkte und Ordnung der aktiven Segmente) an jedem Haltepunkt. B C A F D E R G 4. (25 Punkte) Gegeben sei ein Array mit ganzzahligen Elementen. 4.1. Formulieren Sie einen Algorithmus in Pseudocode, der das kleinste1 Element des Arrays ermittelt und es dieses mit dem ersten Element des Array vertauscht. 4.2. Geben Sie nun einen Algorithmus in Pseudocode an, der den in 4.1. entwickelten Algorithmus nutzt, um das Array zu sortieren. Die Idee diese Verfahrens ist, im ersten Schritt das Verfahren aus 4.1. auf das ganze Array anzuwenden, im zweiten auf das Array ohne das erste Element, im dritten auf das Array ohne die ersten beiden Elemente, usw. Ihre Formulierung der beiden Algorithmen soll sehr eng an Java angelehnt sein. Gesamtpunktzahl: 115 Anmerkung: Diese Klausur dauert 90 Minuten. Wir gehen davon aus, dass Sie in diesen 90 Minuten 100 Punkte erzielen können. Der Aufgabenzettel enthält 5 Aufgaben mit 115 Punkten. Aus diesen Aufgaben können Sie die Teilmenge auswählen, die am besten zu Ihren Kenntnissen passt. Lassen Sie sich also nicht von den Anforderungen des Aufgabenzettels entmutigen, sondern beginnen Sie mit den Aufgaben, die Sie am besten lösen können. Der Bewertungsschlüssel bezieht sich auf das Intervall von 0 bis 100 Punkte. Viel Erfolg! 1 bezieht sich auf den Wert des Elements, nicht auf den Index Seite 2 von 2