• Keine Ergebnisse gefunden

186.813 Algorithmen und Datenstrukturen 1 VU 6.0 2. ¨ Ubungstest SS 2013

N/A
N/A
Protected

Academic year: 2022

Aktie "186.813 Algorithmen und Datenstrukturen 1 VU 6.0 2. ¨ Ubungstest SS 2013"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Technische Universit¨at Wien

Institut f¨ur Computergraphik und Algorithmen Arbeitsbereich f¨ur Algorithmen und Datenstrukturen

186.813 Algorithmen und Datenstrukturen 1 VU 6.0 2. ¨ Ubungstest SS 2013

6. Juni 2013

Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift:

Nachname: Vorname:

Matrikelnummer: Unterschrift:

Anzahl abgegebener Zusatzbl¨atter:

Legen Sie w¨ahrend der Pr¨ufung Ihren Ausweis f¨ur Studierende vor sich auf das Pult.

Sie k¨onnen die L¨osungen entweder direkt auf die Angabebl¨atter oder auf Zusatzbl¨atter schreiben, die Sie von der Aufsicht erhalten. Es ist nicht zul¨assig, eventuell mitgebrachtes eigenes Papier zu verwenden. Benutzen Sie bitte dokumentenechte Schreibger¨ate (keine Bleistifte!).

Die Verwendung von Taschenrechnern, Mobiltelefonen, PDAs, Digitalkameras, Skripten, B¨uchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzul¨assig.

A1: A2: A3: Summe:

Erreichbare Punkte: 16 16 18 50

Erreichte Punkte:

Viel Erfolg!

(2)

Aufgabe 1.A: Suchb¨aume (16 Punkte)

a) (4 Punkte)

F¨ugen Sie den Schl¨ussel 9 in den folgenden B-Baum mit Ordnung 3 ein und zeichnen Sie ihn neu.

2 6 8 10 12

11 13 3

7

14

b) (12 Punkte)

Gegeben ist ein bin¨arer Suchbaum in dem jedes Element x die folgenden Ein- tr¨age enth¨alt:

x.key Schl¨ussel von x x.left linkes Kind von x x.right rechtes Kind vonx

Der Zugriff auf den Baum erfolgt ¨uber seinen Wurzelknoten root.

Schreiben Sie in detailliertem Pseudocode eine MethodecheckBalance(root), die f¨ur einen Baum mit Wurzelknoten root uberpr¨¨ uft, ob es sich um einen g¨ultigen AVL-Baum handelt.

Beachten Sie folgende Punkte:

Die Laufzeit Ihres Algorithmus f¨ur einen Baum mit n Elementen muss in Θ(n) liegen.

Die H¨ohe eines (Teil-)baums bzw. seine Balance sind von vornherein nicht bekannt und k¨onnen ¨uber keine Funktion abgefragt werden.

Sie k¨onnen davon ausgehen, dass es sich um einen g¨ultigen bin¨aren Suchbaum handelt.

(3)

Aufgabe 2.A: Hashtabellen (16 Punkte) F¨ugen Sie die folgenden Zahlen in die jeweiligen Hashtabellen ein, indem Sie die ange- gebenen Hashfunktionen und Strategien f¨ur die Kollisionsbehandlung benutzen.

a) (4 Punkte)

Einzuf¨ugende Zahl: 15

Kollisionsbehandlung: Quadratisches Sondieren mitc1 =c2 = 1 Hashfunktion:

h0(k) = k mod 7

Hashtabelle:

0 1 2 3 4 5 6

22 10 4

b) (4 Punkte)

Einzuf¨ugende Zahl: 15

Kollisionsbehandlung: Double Hashingohne der Verbesserung nach Brent Hashfunktionen:

h1(k) =k mod 7 h2(k) = (k mod 6) + 1

Hashtabelle:

0 1 2 3 4 5 6

22 16 4 19

c) (4 Punkte)

Einzuf¨ugende Zahl: 15

Kollisionsbehandlung: Double Hashingmit der Verbesserung nach Brent Wird ein bereits vorhandenes Element verschoben, so muss die neue Position dieses Elementes eindeutig gekennzeichnet werden.

Hashfunktionen:

h1(k) =k mod 7 h2(k) = (k mod 6) + 1

Hashtabelle:

0 1 2 3 4 5 6

22 16 4 19

d) (4 Punkte)

Gegeben sei eine Hashtabelle H. Zur Kollisionsbehandlung wird Double Hashing verwendet. Geben Sie zu jeder der beiden Konfigurationen an, ob sie gut funk- tionieren w¨urde, oder ob es zu Problemen kommen k¨onnte. Begr¨unden Sie ihre Antworten.

I) Tabellengr¨oße m = 13 h1(k) =k mod 7 h2(k) = (k mod 6) + 1 II) Tabellengr¨oße m = 10

h1(k) =k mod 10 h2(k) = (k mod 7) + 1

(4)

Aufgabe 3.A: Graphen (18 Punkte) Wenden Sie den Algorithmus vonDijkstraauf den folgenden Graphen an um den k¨urzes- ten Weg vom Startknoten A zum Zielknoten H zu finden, Die Kantenbeschriftungen entsprechen den Distanzen zwischen den verbundenen Knoten.

(14 Punkte) Geben Sie in jedem Schritt die Inhalte der Arrays pred (Vorg¨anger) unddist(Distanz) f¨ur jeden Knoten in der untenstehenden Tabelle an. F¨ullen Sie jede Spalte der Tabelle vollst¨andig aus.

(4 Punkte) Geben Sie anschließend den k¨urzesten Weg (die einzelnen Kanten sowie die Gesamtl¨ange) vom Startknoten A zum ZielknotenH an.

A

B E

H C

D F G

1 6

2

2 1

3 4

6 1

7

2

4

4

Schritt A B C D E F G H

0 dist

pred undef undef undef undef undef undef undef undef 1 dist

pred 2 dist pred 3 dist pred 4 dist pred 5 dist pred 6 dist pred 7 dist pred

(5)

Technische Universit¨at Wien

Institut f¨ur Computergraphik und Algorithmen Arbeitsbereich f¨ur Algorithmen und Datenstrukturen

186.813 Algorithmen und Datenstrukturen 1 VU 6.0 2. ¨ Ubungstest SS 2013

6. Juni 2013

Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift:

Nachname: Vorname:

Matrikelnummer: Unterschrift:

Anzahl abgegebener Zusatzbl¨atter:

Legen Sie w¨ahrend der Pr¨ufung Ihren Ausweis f¨ur Studierende vor sich auf das Pult.

Sie k¨onnen die L¨osungen entweder direkt auf die Angabebl¨atter oder auf Zusatzbl¨atter schreiben, die Sie von der Aufsicht erhalten. Es ist nicht zul¨assig, eventuell mitgebrachtes eigenes Papier zu verwenden. Benutzen Sie bitte dokumentenechte Schreibger¨ate (keine Bleistifte!).

Die Verwendung von Taschenrechnern, Mobiltelefonen, PDAs, Digitalkameras, Skripten, B¨uchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzul¨assig.

B1: B2: B3: Summe:

Erreichbare Punkte: 16 16 18 50

Erreichte Punkte:

Viel Gl¨uck!

(6)

Aufgabe 1.B: Suchb¨aume (16 Punkte)

a) (4 Punkte)

F¨ugen Sie den Schl¨ussel 7 in den folgenden B-Baum mit Ordnung 3 ein und zeichnen Sie ihn neu.

12 16

6 8 3

2 5 13

9

1

b) (12 Punkte)

Gegeben ist ein bin¨arer Suchbaum in dem jedes Element x die folgenden Ein- tr¨age enth¨alt:

x.key Schl¨ussel von x x.left linkes Kind von x x.right rechtes Kind vonx

Der Zugriff auf den Baum erfolgt ¨uber seinen Wurzelknoten root.

Schreiben Sie in detailliertem Pseudocode eine MethodecheckBalance(root), die f¨ur einen Baum mit Wurzelknoten root uberpr¨¨ uft, ob es sich um einen g¨ultigen AVL-Baum handelt.

Beachten Sie folgende Punkte:

Die Laufzeit Ihres Algorithmus f¨ur einen Baum mit n Elementen muss in Θ(n) liegen.

Die H¨ohe eines (Teil-)baums bzw. seine Balance sind von vornherein nicht bekannt und k¨onnen ¨uber keine Funktion abgefragt werden.

Sie k¨onnen davon ausgehen, dass es sich um einen g¨ultigen bin¨aren Suchbaum handelt.

(7)

Aufgabe 2.B: Hashtabellen (16 Punkte) F¨ugen Sie die folgenden Zahlen in die jeweiligen Hashtabellen ein, indem Sie die ange- gebenen Hashfunktionen und Strategien f¨ur die Kollisionsbehandlung benutzen.

a) (4 Punkte)

Einzuf¨ugende Zahl: 16

Kollisionsbehandlung: Quadratisches Sondieren mitc1 =c2 = 1 Hashfunktion:

h0(k) = k mod 7

Hashtabelle:

0 1 2 3 4 5 6

21 9 4

b) (4 Punkte)

Einzuf¨ugende Zahl: 14

Kollisionsbehandlung: Double Hashingohne der Verbesserung nach Brent Hashfunktionen:

h1(k) =k mod 7 h2(k) = (k mod 5) + 1

Hashtabelle:

0 1 2 3 4 5 6

21 3 10 18

c) (4 Punkte)

Einzuf¨ugende Zahl: 14

Kollisionsbehandlung: Double Hashingmit der Verbesserung nach Brent Wird ein bereits vorhandenes Element verschoben, so muss die neue Position dieses Elementes eindeutig gekennzeichnet werden.

Hashfunktionen:

h1(k) =k mod 7 h2(k) = (k mod 5) + 1

Hashtabelle:

0 1 2 3 4 5 6

21 3 10 18

d) (4 Punkte)

Gegeben sei eine Hashtabelle H. Zur Kollisionsbehandlung wird Double Hashing verwendet. Geben Sie zu jeder der beiden Konfigurationen an, ob sie gut funk- tionieren w¨urde, oder ob es zu Problemen kommen k¨onnte. Begr¨unden Sie ihre Antworten.

I) Tabellengr¨oße m = 12 h1(k) =k mod 12 h2(k) = (k mod 7) + 1 II) Tabellengr¨oße m = 13

h1(k) =k mod 13 h2(k) = (k+ 1) mod 6

(8)

Aufgabe 3.B: Graphen (18 Punkte) Wenden Sie den Algorithmus vonDijkstraauf den folgenden Graphen an um den k¨urzes- ten Weg vom Startknoten A zum Zielknoten H zu finden, Die Kantenbeschriftungen entsprechen den Distanzen zwischen den verbundenen Knoten.

(14 Punkte) Geben Sie in jedem Schritt die Inhalte der Arrays pred (Vorg¨anger) unddist(Distanz) f¨ur jeden Knoten in der untenstehenden Tabelle an. F¨ullen Sie jede Spalte der Tabelle vollst¨andig aus.

(4 Punkte) Geben Sie anschließend den k¨urzesten Weg (die einzelnen Kanten sowie die Gesamtl¨ange) vom Startknoten A zum ZielknotenH an.

A

B E

H C

D F G

1 5

2

2 1

2 3

6 1

6

4

2

4

Schritt A B C D E F G H

0 dist

pred undef undef undef undef undef undef undef undef 1 dist

pred 2 dist pred 3 dist pred 4 dist pred 5 dist pred 6 dist pred 7 dist pred

Referenzen

ÄHNLICHE DOKUMENTE

Bei einem Fehler (falsches oder fehlendes Kreuz) wird noch 1 Punkt vergeben, bei zwei oder mehr Fehlern werden 0 Punkte f¨ ur diese Aufgabe vergeben.. Wenn es einen

• Schreiben Sie detaillierten Pseudocode f¨ur eine effiziente rekursive Proze- dur, die die H¨ohe x.heigth und die Balancierung x.bal jedes Knotens x eines nat¨urlichen

a) (6 Punkte) F¨uhren Sie in dem Graphen G den Algorithmus von Prim zum Finden eines minimalen Spannbaums durch (die Zahlen bei den Kanten bezeichnen die jeweiligen

Kann die folgende Liste L einer Reihenfolge von Kanten entsprechen, die von Prim’s (egal welcher Startknoten) bzw.. Welche Knoten enth¨ alt die Menge X am Ende?. b)

• (4 Punkte) Geben Sie die Laufzeit von Sortieren durch Fachverteilung in Abh¨ angig- keit von n und l f¨ ur den besten und schlechtesten Fall in Θ-Notation an und begr¨ unden Sie

• (2 Punkte) Geben Sie die Laufzeit f¨ ur das Bef¨ ullen der Matrix im Worst- und im Best-Case in Θ-Notation, in Abh¨ angigkeit der Anzahl der Elemente n und der Kapazit¨ at K ,

Wenden Sie Sortiere(A, n) auf diese Folge an und schreiben Sie dabei den Zustand der Eingabefolge zu Beginn jedes Durchlaufs der wiederhole-Schleife auf.. Beschreiben Sie

Aufgabe 2.A: Approximationsalgorithmen (20 Punkte) Bei der Best-Fit-Heuristik f¨ ur das Bin-Packing-Problem wird jeder Gegenstand nicht in die ehestm¨ ogliche Kiste gelegt sondern