Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor Die Klausur besteht aus 6 Aufgaben und umfasst 60 Punkte. Bitte schreiben Sie die Lösungen auf die Aufgabenblätter. Vergessen Sie nicht, Ihren Namen auf die erste Seite einzutragen und versehen Sie zusätzliche Blätter ebenfalls mit Ihrem Namen. Als Hilfsmittel sind alle schriftlichen Unterlagen gestattet. Viel Erfolg! Name Studiengang Matrikelnummer Aufgabe 1 AVL-Baum 12 Aufgabe 2 B-Baum 10 Aufgabe 3 Hashverfahren 8 Aufgabe 4 Tiefen- und Breitensuche 10 Aufgabe 5 Kürzeste Wege 10 Aufgabe 6 Flüsse in Netzwerke 10 Summe Prof. Dr. Oliver Bittel HTWG Konstanz 60 Klausur Algorithmen und Datenstrukturen 1/7 Aufgabe 1 AVL-Baum a) Zeigen Sie, dass folgender binärer Suchbaum die AVL-Eigenschaft besitzt. (12 Punkte) 40 20 10 35 60 50 70 30 b) Fügen Sie in dem AVL-Baum die Zahlen 25, 36, 34, 37 ein und löschen Sie dann die Zahlen 35 und 37. Geben Sie an, welche Rotationsoperationen durchgeführt werden. Prof. Dr. Oliver Bittel HTWG Konstanz Klausur Algorithmen und Datenstrukturen 2/7 Aufgabe 2 B-Baum Folgender B-Baum der Ordnung m = 4 sei gegeben. (10 Punkte) 50 10 5 7 8 15 20 25 30 40 31 70 32 33 42 48 60 80 90 Fügen Sie in den B-Baum die Zahlen 45 und 9 ein und löschen Sie dann die Zahlen 60 und 70. Geben Sie die jeweils durchgeführten Operationen an. Prof. Dr. Oliver Bittel HTWG Konstanz Klausur Algorithmen und Datenstrukturen 3/7 Aufgabe 3 Hashverfahren (8 Punkte) a) Eine Menge von deutschen Verben (gehen, springen, lachen, etc.) soll mit einem Hashverfahren abgespeichert werden. Es wird die in der Vorlesung besprochene Hashfunktion für Strings verwendet (siehe Seite 1-26). Welche Problem entsteht, wenn als Tabellengröße n = 16348 = 1282 gewählt wird? Wie lässt sich das Problem beheben? b) Zur Verwaltung von Produkten mit einem Hashverfahren soll die EAN-Nummer (European Article Number) als Schlüssel gewählt werden. EAN-Nummern seien durch folgenden Strukturdatentyp definiert: struct EAN { int ln; // Laender-Nummer; 2- bis 3-stellig int hn; // Hersteller-Nummer; 4- bis 5-stellig int tn; // ArtikelNummer; 5-stellig }; Definieren Sie eine geeignete Hashfunktion int h(EAN ean) ohne die EAN-Nummer in einen String umzuwandeln. Prof. Dr. Oliver Bittel HTWG Konstanz Klausur Algorithmen und Datenstrukturen 4/7 Aufgabe 4 Tiefen- und Breitensuche in einer Hinderniswelt (10 Punkte) Eine Hinderniswelt lässt sich durch ein Gitter beschreiben, wobei betretbare Zellen weiß und nicht betretbare Zellen schwarz dargestellt werden. Zwei betretbare Zellen sind benachbart, falls sie sich entweder direkt übereinander oder nebeneinander befinden. Damit lässt sich eine Hinderniswelt auch als Graph auffassen, wobei die Knoten gerade die betretbaren Zellen sind. In der folgenden Abbildung ist eine kleine Hinderniswelt mit dem entsprechenden Graphen zu sehen. Folgende Hinderniswelt wird bei S beginnend mit Tiefensuche (rekursive Variante) bzw. Breitensuche durchlaufen. Tragen Sie in den Zellen die Besuchszeitpunkte an. Gehen Sie davon aus, dass für eine Zelle die benachbarten Zellen immer in der Reihenfolge N, O, S, W (oberhalb, rechts, unterhalb, links) betrachtet werden. Tiefensuche: S Breitensuche: S Prof. Dr. Oliver Bittel HTWG Konstanz Klausur Algorithmen und Datenstrukturen 5/7 Aufgabe 5 Kürzeste Wege in Graphen (10 Punkte) Bestimmen Sie mit dem Algorithmus von Dijkstra den kürzesten Weg von Knoten 3 nach 5. Tragen Sie nach jedem Besuchsschritt für jeden Knoten die aktuelle Distanz d zum Startknoten in die gegebene Tabelle ein. Kenzeichnen Sie außerdem die Kandidaten, die als nächstes besucht werden können. Geben Sie den gefundenen kürzesten Weg an. 1 8 1 2 1 3 2 4 4 6 4 1 6 5 3 1 1 7 Besuchter Knoten Prof. Dr. Oliver Bittel HTWG Konstanz d[1] d[2] d[3] d[4] d[5] Klausur Algorithmen und Datenstrukturen d[6] d[7] 6/7 Aufgabe 6 Flüsse in Netzwerke (10 Punkte) Im folgenden Graphen ist jede Kante mit ihrer Kapazität markiert. Bestimmen Sie mit dem Algorithmus von Ford-Fulkerson einen maximalen Fluss von der Quelle q zur Senke s. Geben Sie an, mit welcher Methode Sie eine Flusserweiterung im Residualgraphen suchen. 2 4 5 2 q 2 5 3 2 s 4 3 4 3 2 Aktueller Fluss Residualgraph: q s q s q s q s q s q s q s q s q s q s Prof. Dr. Oliver Bittel HTWG Konstanz Klausur Algorithmen und Datenstrukturen 7/7