Algorithmen und Datenstrukturen Klausur WS 2006/07 Software

Werbung
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
Herunterladen