Kurs 1661 Datenstrukturen I Klausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I

Ähnliche Dokumente
Hinweise zur Bearbeitung der Klausur zum Kurs 1662/1663,,Datenstrukturen"

Kurs 1661 Datenstrukturen I Klausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I

Kurs 1661 Datenstrukturen I Nachklausur am Seite 1. Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen

Prüfung Algorithmen und Datenstrukturen I

Klausur Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Klausur Algorithmen und Datenstrukturen

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Lösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I

(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Klausur Algorithmen und Datenstrukturen

Lösungsvorschläge zur Klausur 1661 Datenstrukturen I

Klausur Algorithmen und Datenstrukturen I WS 05/06

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

Datenstrukturen und Algorithmen (SS 2013)

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Tutoraufgabe 1 (2 3 4 Bäume):

Klausur Algorithmen und Datenstrukturen

Suchen und Sortieren Sortieren. Heaps

Wintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung

Hinweise zur Bearbeitung der Klausur zum Kurs Einführung in die imperative Programmierung

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

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

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

Klausur. Informatik 1 Wintersemester 2005/2006 Prof. Dr. Wolfgang May 4. April 2006, Uhr Bearbeitungszeit: 90 Minuten

Prüfung Algorithmen und Datenstrukturen I

JAVA - Suchen - Sortieren

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

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

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

2. Klausur Datenstrukturen und Algorithmen SS 2014

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

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

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Klausur Algorithmen und Datenstrukturen

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Übung Algorithmen und Datenstrukturen

Tutoraufgabe 1 (SCC):

Abschnitt 19: Sortierverfahren

3.2. Divide-and-Conquer-Methoden

Klausur zur Vorlesung Algorithmen und Datenstrukturen

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen II

Probeklausur zur Vorlesung

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

NAME, VORNAME: Studiennummer: Matrikel:

Vorlesung Datenstrukturen

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

In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:

Karlsruher Institut für Technologie. Klausur Algorithmen I

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

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

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

Elementare Sortierverfahren

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

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

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

Copyright, Page 1 of 7 Heapsort

Algorithms & Data Structures 2

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Algorithmen & Datenstrukturen 1. Klausur

Übung Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen D-INFK

Fragenkatalog 1. Kurseinheit

7. Sortieren Lernziele. 7. Sortieren

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Kap. 3: Sortieren (3)

Kurs 1793 Software Engineering I - Grundkonzepte der OOSE Klausur am

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Algorithmen und Datenstrukturen

Klausur Algorithmentheorie

Tutoraufgabe 1 (Sortieralgorithmus):

Datenstrukturen und Algorithmen D-INFK

2. Präsenzübung Datenstrukturen und Algorithmen SS 2014

Kurs 1613 Einführung in die imperative Programmierung

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4

Klausur - Informatik I SS 05. Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Übung Algorithmen und Datenstrukturen

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Transkript:

Kurs 1661 Datenstrukturen I Klausur am 17.9.2011 Seite 1 Hinweise zur Bearbeitung der Klausur zum Kurs 1661 Datenstrukturen I Bitte lesen Sie sich diese Hinweise vollständig und aufmerksam durch, bevor Sie mit der Bearbeitung der Klausur beginnen. Beachten Sie insbesondere die Punkte 7 und 8! 1. Die Klausurdauer beträgt 2 Stunden. 2. Prüfen Sie bitte die Vollständigkeit Ihrer Unterlagen. Die Klausur umfasst: 2 Deckblätter diese Hinweise 1 Formblatt für eine Teilnahmebescheinigung zur Vorlage beim Finanzamt 5 Aufgaben auf den Seiten 2 6 3. Bevor Sie mit der Bearbeitung der Klausuraufgaben beginnen, füllen Sie bitte die folgenden Teile der Klausur aus: sämtliche Deckblätter mit Name, Anschrift sowie Matrikelnummer. Markieren Sie vor der Abgabe auf allen Deckblättern die von Ihnen bearbeiteten Aufgaben. die Teilnahmebescheinigung, falls Sie diese wünschen. 4. Schreiben Sie Ihre Lösungen auf Ihr eigenes Papier (DIN A4) und nicht auf die Seiten mit den Aufgabenstellungen. Heften Sie vor Abgabe der Klausur die Deckblätter und die Aufgabenstellungen (und evtl. die Teilnahmebescheinigung) vor Ihre Bearbeitung. Sie müssen die Aufgabenstellung also mit abgeben! Sie erhalten die Aufgabenstellungen zusammen mit Ihrer korrigierten Klausur zurück. 5. Schreiben Sie bitte auf jedes Blatt Ihrer Bearbeitung oben links Ihren Namen und oben rechts Ihre Matrikelnummer. Nummerieren Sie Ihre Seiten bitte durch. 6. Wenden Sie bei der Lösung der Aufgaben, soweit dies möglich ist, die Algorithmen und Notationen aus den Kurseinheiten an. 7. Schreiben Sie, wenn Algorithmen gefordert sind, keine kompletten Java-Programme, sondern beschränken Sie sich auf die wesentlichen Teile des Algorithmus, die z.t. auch in Prosa formuliert werden können. Formulieren Sie Algorithmen aber so, dass die elementaren Einzelschritte erkennbar werden. Sparen Sie bei solchen Aufgaben nicht mit Kommentaren. Wenn Ihre Lösung aufgrund fehlender Kommentare nicht verständlich ist, führt das zu Punktabzug. 8. Vermeiden Sie in jedem Fall bei der Definition von Funktionen in Algebren Java-Programme sowie Algorithmen. Geben Sie lediglich mathematische Definitionen an, wie sie im Kurstext verwandt worden sind! Ebenso sind Mengendefinitionen in mathematischer Mengennotation durchzuführen. Geben Sie auf keinen Fall Datentypdefinitionen an und verwenden Sie keine konkreten Datenstrukturen! 9. Als Hilfsmittel sind nur unbeschriebenes Konzeptpapier und Schreibzeug zugelassen. Die Reinschrift der Klausur darf nicht mit Bleistift erfolgen. 10. Durch Lösen der Aufgaben sind maximal 100 Punkte erreichbar. Sie dürfen damit rechnen einen Übungsschein bzw. ein Zertifikat zu erhalten, wenn Sie insgesamt mindestens 50 Punkte erreichen.

Seite 2 Klausur am 17.9.2011 1661 Datenstrukturen I 28 Punkte Aufgabe 1 Algebra Kunstmuseen verfügen über zahlreiche Bilder. Sie sollen eine Algebra entwerfen, die solche Kunstsammlungen verwalten kann. Eine Kunstsammlung umfasst mehrere Räume. Jeder Raum in einer Kunstsammlung hat eine eindeutige Nummer. Die Zahl der Bilder je Raum ist durch die Ausstellungsfläche des Raumes in Quadratmetern und die Größe der darin ausgestellten Bilder nach oben begrenzt. Jedes Bild verfügt über einen Titel, einen Maler und eine Größe in Quadratmetern. Folgende Operationen sollen unterstützt werden: 1. createpicture: erzeugt aus einem Titel, der Größenangabe, dem Namen des Malers ein Bild, 2. createcollection: erzeugt eine leere Kunstsammlung, 3. createroom: erzeugt aus einer Raumnummer und der maximalen Ausstellungsfläche einen Raum, 4. insertpicture: Fügt ein Bild in einen Raum ein, wenn noch genug Ausstellungsfläche vorhanden ist. 5. insertroom: Fügt einen Raum zu einer Sammlung hinzu. 6. deleteroom: Entfernt einen Raum aus einer Kunstsammlung. 7. deletepicture: Entfernt ein Bild aus einem Raum, wenn es darin enthalten ist. 8. getartist: Gibt den Maler eines Bildes zurück. 9. isequal: Prüft, ob zwei Bilder gleich sind. 10. getmaxarea: Gibt die maximale Ausstellungsfläche eines Raums zurück 11. getusedared: Gibt die genutzte Ausstellungsfläche eines Raums zurück. 12. getcapacity: Gibt die noch freie Ausstellungsfläche eines Raums zurück. 13. containspicture: Prüft, ob ein Bild in einem Raum vorhanden ist. 14. findpicture: Gibt alle Räume einer Kunstsammlung, die das Bild enthalten, aus. Formulieren Sie die Spezifikation aller erforderlichen Datentypen und Operationen als Algebra. 4 Punkte 7 Punkte 17 Punkte (c) Geben Sie die Sorten und Operatorsignaturen der Algebra an. Geben Sie Trägermengen für die Sorten an, die genau die geforderten Objekte enthalten. Dabei können Sie int, real, bool und string als gegeben voraussetzen. Geben Sie die Funktionen für die Operationen mit der oben aufgeführten Semantik an.

Kurs 1661 Datenstrukturen I Klausur am 17.9.2011 Seite 3 Aufgabe 2 AVL-Baum 30 Punkte 15 7 25 2 11 23 27 10 22 24 26 28 17 Löschen Sie aus oben gezeigtem AVL-Baum folgende Schlüssel in der angegebenen Reihenfolge. Zeichnen Sie den Baum vor und nach jeder Rebalancierung. Markieren Sie jeweils den Knoten, der aus der Balance geraten ist und geben Sie die jeweilige Balancierungsmethode an. Treten beim Löschen eines Schlüssels fortgesetzte Balancierungsoperationen auf, so genügt es, den Zustand vor der ersten und nach der letzten Operation darzustellen. 2, 24, 28, 25, 27 10 Punkte

Seite 4 Klausur am 17.9.2011 1661 Datenstrukturen I 3 Punkte Geben Sie die Laufzeitkomplexität des im Folgenden beschriebenen, laufzeitoptimalen Algorithmus arraytoavltree, der aus einem aufsteigend vorsortierten Array einen AVL-Baum erzeugt, in O-Notation als Funktion der Größe des Arrays n an. 1 algorithm arraytoavltree(a, lower, upper) 2 { A ist ein Array mit aufsteigend sortierten, 3 disjunkten Schlüsselwerten, 4 lower ist der Index des ersten zu berücksichtigenden 5 Schlüsselwertes in A, 6 upper ist der Index nach dem letzten zu berücksichtigenden 7 Schlüsselwert in A, es gelte stets lower upper. 8 Der Algorithmus gibt einen AVL-Baum über den indizierten 9 Bereich zurück. 10 } 11 if (upper = lower) then 12 return empty; 13 end if; 14 if (upper - lower = 1) then 15 return (empty, A[lower], empty, 0) 16 end if; 17 if (upper - lower = 2) then 18 return ((empty, A[lower], empty, 0), A[upper - 1], empty, 1); 19 else 20 var mid; 21 mid := lower upper 1 lower /2 22 T1 = arraytoavltree(a, lower, mid); ; 23 T2 = arraytoavltree(a, mid + 1, upper); 24 return (T1, A[mid], T2, max{height(t1)+1, height(t2)+1}); 25 end if; 26 end arraytoavltree. Um aus einem Array A der Länge n einen AVL-Baum T zu erzeugen, lautet der Aufruf T := arraytoavltree(a, 1, n +1). 17 Punkte (c) Beweisen Sie Ihre Aussage zur Laufzeit des Algorithmus arraytoavltree aus Teilaufgabe. Hinweise: 1. Anstatt alle natürlichen Zahlen für n zu betrachten, genügt es in Teilaufgabe (c), eine geeignete unendliche Teilfolge der natürlichen Zahlen auszuwählen. 2. Es gilt: n i n 1 2 2 1 i 0

Kurs 1661 Datenstrukturen I Klausur am 17.9.2011 Seite 5 Aufgabe 3 Sortierverfahren 25 Punkte (c) (d) Geben Sie die Laufzeit von Quicksort (mit findx für die Bestimmung des Pivotelements), Heapsort und Bubblesort, für den Fall an, dass die übergebene Folge bereits sortiert ist. Begründen Sie die von Ihnen angegebene Laufzeit. Welches der drei Verfahren ist demnach unter der angegebenen Bedingung optimal? Die Zahlenfolge 15-96 - 47-32 - 43-18 - 5-68 - 103-55 soll mittels Heapsort aufsteigend und in situ sortiert werden. Geben Sie das Array nach dem Aufbau des initialen Heaps sowie nach der Entnahme und Bearbeitung jedes Elements an. Normale deutsche KFZ-Kennzeichen bestehen aus 3 Komponenten. Die erste Komponente ist eine ein- bis dreielementige Buchstabenfolge für die Zulassungstelle. Die zweite Komponente besteht aus einem oder zwei Buchstaben. Die dritte Komponente ist eine ein- bis vierstellige Zahl. Sortieren Sie die unten angegebene Folge von KFZ-Kennzeichen entsprechend ihrer Komponenten mittels Radixsort: HA - TO 1234, DO - TO 432, HA - T 1234, DO - AJ 432, HH - KO 123, HH - TO 1234, BO - AJ 123 Geben Sie für jede Phase an, wonach sortiert wird (Zulassungsstelle, Buchstabenkombination, Zahl). Es reicht aus, wenn jeweils Sie die gefüllten Behälter mit ihren Inhalten angeben. Wie verändert sich die Laufzeit von Radixsort, wenn die zu sortierenden Werte schon sortiert vorliegen? Begründen Sie Ihre Antwort. 7 Punkte 9 Punkte 7 Punkte 2 Punkte

Seite 6 Klausur am 17.9.2011 1661 Datenstrukturen I 16 Punkte Aufgabe 4 B-Baum 8 Punkt 8 Punkt Fügen Sie in einen anfangs leeren B-Baum der Ordnung zwei die folgenden Elemente in der gegebenen Reihenfolge ein. Zeichnen Sie den Baum jeweils vor und nach einer Split-Operation. 15, 23, 12, 17, 19, 32, 25, 6, 9, 10, 35 Löschen Sie aus dem unten stehenden B-Baum der Ordung zwei nacheinander die folgenden Elemente in der gegebenen Reihenfolge. 14, 4 Verwenden Sie bei einer Balance- oder Mergeoperation den linken Nachbarn wenn beide Nachbarn zum Ausgleich geeignet sind. Zeichnen Sie jeweils den Baum vor und nach einem Ausgleich und geben Sie die verwendete Ausgleichsoperation an. 9 3 6 12 15 1 2 4 5 7 8 10 11 13 14 16 17 18 19 1 Punkt Aufgabe 5 Deckblatt Lesen Sie sich die Hinweise zur Bearbeitung sorgfältig durch. Füllen Sie den dort aufgeführten Anweisungen entsprechend beide Deckblätter vollständig und korrekt aus.