Algorithmen und Datenstrukturen 1 VL Übungstest WS Jänner 2009

Ähnliche Dokumente
Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2009

Algorithmen und Datenstrukturen 1 VU Übungstest SS Juni 2013

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Algorithmen und Datenstrukturen VO UE 2.0 Nebentermin Vorlesungsprüfung / 4. Übungstest SS

Algorithmen und Datenstrukturen 2 VU 3.0 Übungstest SS Juni 2013

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2007

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Algorithmen und Datenstrukturen 1 VL Übungstest WS 2010/ November 2010

Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2014

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Algorithmen und Datenstrukturen 2 VU 3.0 Übungstest SS Juni 2014

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

NAME, VORNAME: Studiennummer: Matrikel:

Algorithmen und Datenstrukturen 13

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Algorithmen und Datenstrukturen

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel

Datenstrukturen und Algorithmen (SS 2013)

Wie wird ein Graph dargestellt?

Klausur Informatik B April Teil I: Informatik 3

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Karlsruher Institut für Technologie. Klausur Algorithmen I

Datenstrukturen und Algorithmen D-INFK

Informatik B Sommersemester Musterlösung zur Klausur am

Datenstrukturen und Algorithmen D-INFK

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

2. Klausur Datenstrukturen und Algorithmen SS 2014

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Datenstrukturen und Algorithmen D-INFK

Klausur Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Algorithmen und Datenstrukturen 2-1. Seminar -

Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit

Motivation Binäre Suchbäume

Algorithmen und Datenstrukturen

Vorlesung Datenstrukturen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Seite 1 von 13 Name: Aufgabe 1: Suchalgorithmen (a) (4 Punkte ) Gegeben ist folgendes Streckennetz:

12. AuD Tafelübung T-C3

15. Elementare Graphalgorithmen

Klausur Algorithmen und Datenstrukturen

Lernmodul 7 Algorithmus von Dijkstra

Übung: Algorithmen und Datenstrukturen SS 2007

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

EADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr

Teil VII. Hashverfahren

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Übung Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Muster. Muster. B E I S P I E L K L A U S U R Informatik B Juli Teil I: Informatik 3 ACHTUNG. Schritt Queue 1 B

Algorithmen und Datenstrukturen 1-5. Seminar -

DAP2 Probeklausur. Matrikelnummer Vorname Nachname. Datum: 24. Juli C. Sohler A. Krivo²ija, A. Rey, H. Sandvoÿ

Datenstrukturen und Algorithmen (SS 2013)

Klausur Algorithmentheorie

Klausur Algorithmentheorie

Informatik B Sommersemester Musterlösung zur Klausur vom

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Seite 1 von 13 Name: Aufgabe 1: Suchalgorithmen (a) (4 Punkte ) Gegeben ist folgendes Streckennetz:

Datenstrukturen und Algorithmen D-INFK

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

Datenstrukturen und Algorithmen D-INFK

Prüfung Datenstrukturen und Algorithmen, D-INFK. Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor

Klausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Algorithmen und Datenstrukturen Suchbaum

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Klausur Algorithmentheorie

Vorname:... Matrikel-Nr.:... Unterschrift:...

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Stud.-Nummer: Algorithmen & Datenstrukturen Seite 1

Klausur Algorithmen und Datenstrukturen

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Tutoraufgabe 1 (2 3 4 Bäume):

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen. einfach verkettete Liste

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Teil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1

Datenstrukturen und Algorithmen SS07

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )

Vorlesung Datenstrukturen

Transkript:

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 2. Übungstest WS 2008 16. Jänner 2009 Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift: Nachname: Vorname: Matrikelnummer: Studienkennzahl: Anzahl abgegebener Zusatzblätter: Legen Sie bitte Ihren Studentenausweis vor sich auf das Pult. Sie können die Lösungen entweder direkt auf die Angabeblätter oder auf Zusatzblätter schreiben, die Sie auf Wunsch von der Aufsicht erhalten. Es ist nicht zulässig, eventuell mitgebrachtes eigenes Papier zu verwenden. Die Verwendung von Taschenrechnern, Mobiltelefonen, Skripten, Büchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzulässig. Die Arbeitszeit beträgt 55 Minuten. A1: A2: A3: Summe: Erreichbare Punkte: 16 19 15 50 Erreichte Punkte: Viel Erfolg!

Aufgabe 1.A: Hashverfahren (16 Punkte) a) (8 Punkte) Gegeben ist jeweils eine Hashtabelle mit Tabellengröße m = 7, die Double Hashing mit der Verbesserung nach Brent benutzt mit h 1 (k) = k mod 11 h 2 (k) = 2 + (k mod 5). Fügen Sie den Wert 7 in die folgende Tabelle ein: 0 1 2 3 4 5 6 22 4 Fügen Sie den Wert 14 in die folgende Tabelle ein: 0 1 2 3 4 5 6 2 10 15 Sind die gegebene Tabellengröße sowie die beiden Hashfunktionen eine gute Wahl oder können dabei Probleme auftreten? Begründen Sie Ihre Antwort kurz. b) (8 Punkte) Betrachten Sie die folgende Hashtabelle der Größe 5: Index 0 1 2 3 4 Element 4 7 3 12 Status W F B B B Die Hashfunktion, die zum Einfügen der Elemente verwendet wurde, lautet h(k) = k mod 5 und als Kollisionsbehandlung wurde lineares Sondieren mit der Schrittweite 1 verwendet. In der Zeile Status steht F für frei, W für wieder frei und B für besetzt. In die leere Hashtabelle wurden zu Beginn die Elemente mit den Schlüsseln 3, 7 und 12 eingefügt (nicht notwendigerweise in dieser Reihenfolge) und in weiterer Folge nicht wieder entfernt. Über weitere Einfüge- und Löschoperationen anderer Schlüssel danach gibt es keine genauen Angaben. Kreuzen Sie an, ob die folgenden Aussagen wahr oder falsch sind: Wahr Falsch Es wurde nie ein Schlüssel gelöscht. Es ist möglich, dass 1 eingefügt und wieder gelöscht wurde. 7 wurde definitiv vor 12 eingefügt. Es ist möglich, dass 12 vor 3 eingefügt wurde. Ein Element mit Schlüssel 5 würde aktuell in der Hashtabelle an Index 1 eingefügt werden.

Aufgabe 2.A: Suchverfahren (19 Punkte) a) (10 Punkte) Schreiben Sie detaillierten Pseudocode für eine Funktion, die die Rechts- Rotation für einen Teilbaum mit Wurzel u (wird als Parameter übergeben) innerhalb eines AVL-Baumes durchführt. Als Rückgabewert soll ihre Funktion den neuen Wurzelknoten des rebalancierten Teilbaumes zurückliefern. Zu jedem Knoten x werden folgende Daten gespeichert: x.key: x.parent: x.left: x.right: x.height: Schlüssel von x Verweis auf Vaterknoten von x Verweis auf linkes Kind von x Verweis auf rechtes Kind von x Höhe des Teilbaumes mit Wurzel x Hinweis: Beachten Sie, dass Ihre Rebalancierungsfunktion so ausgelegt ist, dass alle oben angeführten Daten eines Knotens nach der Rebalancierung korrekt sind! Geben Sie die Laufzeit ihres Algorithmus in Θ-Notation in Abhängigkeit einer geeigneten Größe an. b) (9 Punkte) Fügen Sie folgende Werte in genau dieser Reihenfolge in einen Anfangs leeren B-Baum der Ordnung 3 ein. Zeichnen Sie lediglich den resultierenden B-Baum, Zwischenschritte müssen nicht unbedingt angegeben werden. 42, 1, 19, 10, 11, 7, 32, 3, 13 Löschen Sie nun die Schlüssel 32 und 19 in genau dieser Reihenfolge aus dem B-Baum und zeichnen Sie jeweils den resultierenden B-Baum, Zwischenschritte der Löschoperationen müssen nicht angegeben werden. Geben Sie die Laufzeit in Θ-Notation in Abhängigkeit der Anzahl der gespeicherten Elemente n für das Suchen eines Schlüssels k in einem B-Baum der Ordnung 5 an.

Aufgabe 3.A: Graphen (15 Punkte) Gegeben ist die folgende Adjazenzmatrix eines ungerichteten Graphen G: A B C D E F G H A 1 3 6 12 B 9 11 C 1 4 D 3 5 2 E 6 9 5 7 13 F 11 8 G 12 4 2 7 10 H 13 8 10 a) (2 Punkte) Zeichnen Sie den Graphen G in die gegebene Vorlage ein und geben Sie die Adjazenzliste des Knotens E an. Die Zahlen in der Matrix bezeichnen die Kantenkosten. Ein bedeutet, dass keine Kante zwischen den entsprechenden Knoten existiert. b) (7 Punkte) Führen Sie in dem Graphen G den Algorithmus von Kruskal zum Finden eines minimalen Spannbaums durch. Notieren Sie die genaue Reihenfolge, in der die Kanten in den Baum aufgenommen wurden (die Liste der Kanten ist ausreichend, der MST muss nicht gezeichnet werden). Falls Sie einen Startknoten benötigen, verwenden Sie dazu den Knoten A. c) (3 Punkte) Ist der resultierende minimale Spannbaum aus Punkt (b) eindeutig? Liefern die Algorithmen von Kruskal und Prim im Allgemeinen immer den selben minimalen Spannbaum (bezogen auf Gesamtkosten und Kanten)? Begründen Sie Ihre Antwort kurz! d) (3 Punkte) Nehmen Sie an, Sie programmieren einen Algorithmus für ungerichtete Graphen, bei denen kein Knoten mehr als 5 Nachbarn besitzt. Welche Darstellungsform für den Graphen ist aus Effizienzgründen zu wählen: Adjazenzmatrix oder -liste? Begründen Sie Ihre Antwort, indem Sie für beide Datenstrukturen eine Abschätzung des Aufwands zum Finden aller Nachbarn eines Knotens v V in Θ-Notation angeben, jeweils in Abhängigkeit einer dafür geeigneten Größe.

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 2. Übungstest WS 2008 16. Jänner 2009 Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift: Nachname: Vorname: Matrikelnummer: Studienkennzahl: Anzahl abgegebener Zusatzblätter: Legen Sie bitte Ihren Studentenausweis vor sich auf das Pult. Sie können die Lösungen entweder direkt auf die Angabeblätter oder auf Zusatzblätter schreiben, die Sie auf Wunsch von der Aufsicht erhalten. Es ist nicht zulässig, eventuell mitgebrachtes eigenes Papier zu verwenden. Die Verwendung von Taschenrechnern, Mobiltelefonen, Skripten, Büchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzulässig. Die Arbeitszeit beträgt 55 Minuten. B1: B2: B3: Summe: Erreichbare Punkte: 15 16 19 50 Erreichte Punkte: Viel Glück!

Aufgabe 1.B: Graphen (15 Punkte) Gegeben ist die folgende Adjazenzmatrix eines ungerichteten Graphen G: A B C D E F G H A 11 3 6 12 B 13 10 C 11 4 D 3 5 2 E 6 13 5 7 9 F 10 8 G 12 4 2 7 1 H 9 8 1 a) (2 Punkte) Zeichnen Sie den Graphen G in die gegebene Vorlage ein und geben Sie die Adjazenzliste des Knotens A an. Die Zahlen in der Matrix bezeichnen die Kantenkosten. Ein bedeutet, dass keine Kante zwischen den entsprechenden Knoten existiert. b) (7 Punkte) Führen Sie in dem Graphen G den Algorithmus von Kruskal zum Finden eines minimalen Spannbaums durch. Notieren Sie die genaue Reihenfolge, in der die Kanten in den Baum aufgenommen wurden (die Liste der Kanten ist ausreichend, der MST muss nicht gezeichnet werden). Falls Sie einen Startknoten benötigen, verwenden Sie dazu den Knoten E. c) (3 Punkte) Ist der resultierende minimale Spannbaum aus Punkt (b) eindeutig? Liefern die Algorithmen von Kruskal und Prim im Allgemeinen immer den selben minimalen Spannbaum (bezogen auf Gesamtkosten und Kanten)? Begründen Sie Ihre Antwort kurz! d) (3 Punkte) Nehmen Sie an, Sie programmieren einen Algorithmus für ungerichtete Graphen, bei denen kein Knoten mehr als 4 Nachbarn besitzt. Welche Darstellungsform für den Graphen ist aus Effizienzgründen zu wählen: Adjazenzmatrix oder -liste? Begründen Sie Ihre Antwort, indem Sie für beide Datenstrukturen eine Abschätzung des Aufwands zum Finden aller Nachbarn eines Knotens v V in Θ-Notation angeben, jeweils in Abhängigkeit einer dafür geeigneten Größe.

Aufgabe 2.B: Hashverfahren (16 Punkte) a) (8 Punkte) Gegeben ist jeweils eine Hashtabelle mit Tabellengröße m = 7, die Double Hashing mit der Verbesserung nach Brent benutzt mit h 1 (k) = k mod 13 h 2 (k) = (k mod 5) + 1. Fügen Sie den Wert 15 in die folgende Tabelle ein: 0 1 2 3 4 5 6 9 16 Fügen Sie den Wert 7 in die folgende Tabelle ein: 0 1 2 3 4 5 6 20 8 3 Sind die gegebene Tabellengröße sowie die beiden Hashfunktionen eine gute Wahl oder können dabei Probleme auftreten? Begründen Sie Ihre Antwort kurz. b) (8 Punkte) Betrachten Sie die folgende Hashtabelle der Größe 5: Index 0 1 2 3 4 Element 6 2 11 3 Status F B B B W Die Hashfunktion, die zum Einfügen der Elemente verwendet wurde, lautet h(k) = k mod 5 und als Kollisionsbehandlung wurde lineares Sondieren mit der Schrittweite 1 verwendet. In der Zeile Status steht F für frei, W für wieder frei und B für besetzt. In die leere Hashtabelle wurden zu Beginn die Elemente mit den Schlüsseln 2, 6 und 11 eingefügt (nicht notwendigerweise in dieser Reihenfolge) und in weiterer Folge nicht wieder entfernt. Über weitere Einfüge- und Löschoperationen anderer Schlüssel danach gibt es keine genauen Angaben. Kreuzen Sie an, ob die folgenden Aussagen wahr oder falsch sind: Wahr Falsch 6 wurde definitiv vor 11 eingefügt. Es ist möglich, dass 11 vor 2 eingefügt wurde. Es ist möglich, dass 0 eingefügt und wieder gelöscht wurde. Es wurde nie ein Schlüssel gelöscht. Ein Element mit Schlüssel 4 würde aktuell in der Hashtabelle an Index 0 eingefügt werden.

Aufgabe 3.B: Suchverfahren (19 Punkte) a) (9 Punkte) Fügen Sie folgende Werte in genau dieser Reihenfolge in einen Anfangs leeren B-Baum der Ordnung 3 ein. Zeichnen Sie lediglich den resultierenden B-Baum, Zwischenschritte müssen nicht unbedingt angegeben werden. 10, 11, 1, 19, 42, 8, 34, 5, 15 Löschen Sie nun die Schlüssel 34 und 19 in genau dieser Reihenfolge aus dem B-Baum und zeichnen Sie jeweils den resultierenden B-Baum, Zwischenschritte der Löschoperationen müssen nicht angegeben werden. Geben Sie die Laufzeit in Θ-Notation in Abhängigkeit der Anzahl der gespeicherten Elemente n für das Suchen eines Schlüssels k in einem B-Baum der Ordnung 4 an. b) (10 Punkte) Schreiben Sie detaillierten Pseudocode für eine Funktion, die die Links- Rotation für einen Teilbaum mit Wurzel u (wird als Parameter übergeben) innerhalb eines AVL-Baumes durchführt. Als Rückgabewert soll ihre Funktion den neuen Wurzelknoten des rebalancierten Teilbaumes zurückliefern. Zu jedem Knoten x werden folgende Daten gespeichert: x.key: x.parent: x.left: x.right: x.height: Schlüssel von x Verweis auf Vaterknoten von x Verweis auf linkes Kind von x Verweis auf rechtes Kind von x Höhe des Teilbaumes mit Wurzel x Hinweis: Beachten Sie, dass Ihre Rebalancierungsfunktion so ausgelegt ist, dass alle oben angeführten Daten eines Knotens nach der Rebalancierung korrekt sind! Geben Sie die Laufzeit ihres Algorithmus in Θ-Notation in Abhängigkeit einer geeigneten Größe an.