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

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

Lösungsvorschläge zur Nachklausur 1661 Datenstrukturen I

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

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

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Karlsruher Institut für Technologie. Klausur Algorithmen I

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Klausur Algorithmen und Datenstrukturen

Prüfung Algorithmen und Datenstrukturen I

NAME, VORNAME: Studiennummer: Matrikel:

Klausur Algorithmen und Datenstrukturen

Fragenkatalog 1. Kurseinheit

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

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

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

Lösungsvorschläge zur Klausur 1661 Datenstrukturen I

DAP2-Klausur

Kurs 1793 Software Engineering I - Grundkonzepte der OOSE Klausur am

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

2. Klausur Datenstrukturen und Algorithmen SS 2014

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Klausur Algorithmen und Datenstrukturen

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

Klausur Algorithmen und Datenstrukturen

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

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

Tutoraufgabe 1 (2 3 4 Bäume):

Datenstrukturen und Algorithmen 2. Klausur SS 2001

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

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

Sortieren II / HeapSort Heaps

Datenstrukturen und Algorithmen D-INFK

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

11. Elementare Datenstrukturen

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen (für ET/IT)

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

Klausur Algorithmen und Datenstrukturen

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

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

5. Vorrangwarteschlangen (priority queues)

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen II

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

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I

Klausur Algorithmen und Datenstrukturen

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Suchen und Sortieren Sortieren. Heaps

Algorithmen und Datenstrukturen 1 VU Übungstest SS Juni 2013

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

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

Datenstrukturen und Algorithmen D-INFK

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

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

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK

Algorithmen und Datenstrukturen

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

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Vorlesung Datenstrukturen

1. Testklausur Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013

Technische Universität München SoSe 2018 Fakultät für Informatik, I Juli 2018 Dr. Stefanie Demirci. Aufgabe 1 Sortieren mit Heap Sort

Σ /6 /6 /6 /6 /24

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

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

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

Klausur Algorithmentheorie

Dynamische Mengen. Realisierungen durch Bäume

Copyright, Page 1 of 7 Heapsort

Algorithmen & Datenstrukturen Midterm Test 2

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

Diskrete Strukturen. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift ... Allgemeine Hinweise

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Matrikelnummer: 1 Aufgabe 1: Quickies (30 Punkte) a) Wird das folgende Programm von einem Java-Übersetzer ohne Beanstandungen übersetzt? Falls nicht,

Datenstrukturen und Algorithmen D-INFK

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

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

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen D-INFK

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

Tutoraufgabe 1 (SCC):

Algorithmen und Datenstrukturen Heapsort

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Klausur Algorithmentheorie

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmentheorie

Transkript:

Kurs 1661 Datenstrukturen I Klausur am 18.9.2010 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 7 Aufgaben auf den Seiten 2 5 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. Zusätzlich werden Ihnen ggf. bis zu 22 Bonuspunkte für korrektes Lösen der Einsendeaufgaben angerechnet. Sie dürfen damit rechnen einen Übungsschein bzw. ein Zertifikat zu erhalten, wenn Sie insgesamt mindestens 60 Punkte erreichen.

Seite 2 Klausur am 18.9.2010 1661 Datenstrukturen I 30 Punkte Aufgabe 1 Algebra In dieser Aufgabe sollen Sie eine Algebra angeben, mit der es möglich ist, eine DVD-Sammlung zu beschreiben und Operationen auf dieser auszuführen. Eine DVD besteht aus einer Kennung (nennen wir sie EAN) und enthält Filme. Die EAN ist eine natürliche Zahl. Vereinfachend gehen wir davon aus, dass die EAN innerhalb einer Sammlung eindeutig ist, d.h. keine doppelten DVDs vorhanden sind. Allerdings kann der gleiche Film auf unterschiedlichen DVDs existieren. Für einen Film sollen folgende Daten hinterlegt werden: der Name des Films, der Regisseur/die Regisseurin (ggf. mehrere oder keiner), die Laufzeit in ganzen Sekunden Als Operationen der Algebra sollen (mindestens) bereitgestellt werden: 1. createmovie und createdvd: erzeugt aus den notwendigen Daten das entsprechende Objekt, 2. createcollection erzeugt eine leere Sammlung, 3. getname, getdirector, getruntime: dienen zur Abfrage der gewünschten Information zu einem Film, 4. insertdvd: fügt eine DVD in die Sammlung ein, 5. containsmovie: prüft für eine Sammlung, ob ein nur durch seinen Namen dargestellter Film in einer Sammlung enthalten ist, 6. singlemovies: wählt aus einer Sammlung diejenigen Filme aus, die sich allein auf einer DVD befinden, d.h. die DVD enthält nur diesen einen Film, 7. longdvds: ermittelt aus einer Sammlung diejenigen DVDs, deren Gesamtspielzeit größer ist, als ein gegebener Wert, 8. moviesof: ermittelt in einer DVD-Sammlung alle Filme, bei denen ein gegebener Regisseur/eine gegebene Regisseurin beteiligt war, 9. avgruntimeof: ermittelt die durchschnittliche Laufzeit aller Filme eines bestimmten Regisseurs in einer Sammlung. Zur Vereinfachung dieser Aufgabe können Sie davon ausgehen, dass die Datentypen int, real, bool, string mit den üblichen Operatoren sowie der parametrisierbare Datentyp set mit den Operationen empty, insert, delete, member, size bekannt sind und verwendet werden können. Damit kann z.b. die Trägermenge string des Typs string verwendet werden. 5 Punkte 10 Punkte Geben Sie die Sorten und die Operatorsignaturen der Algebra an. Geben Sie die Trägermengen für die Sorten der Algebra an. Geben Sie die Funktionen für alle Operatoren der Algebra an. Sie können auf die Punktnotation zum Zugriff auf die Elemente von Tupeln zurückgreifen.

Kurs 1661 Datenstrukturen I Klausur am 18.9.2010 Seite 3 Aufgabe 2 Dictionaries 8 Punkte Achtung: Bei dieser Aufgabe erhalten Sie für jede richtige Antwort Punkte angerechnet, allerdings werden Ihnen ebenso für jede falsche Antwort Punkte abgezogen. Insgesamt können Sie bei dieser Aufgabe jedoch minimal 0 Punkte, maximal 8 Punkte erhalten. Welche Operationen stellt der Datentyp Dictionary zur Verfügung und was stellt er dar? Nennen Sie 7 Implementierungsmöglichkeiten aus dem Kurstext für den Datentyp Dictionary. Geben Sie jeweils die worst-case Laufzeit für die typischen Dictionary-Operationen für jede Implementierung an. Begründungen der Laufzeiten sind nicht erforderlich. Aufgabe 3 Hashing 10 Punkte Fügen Sie die Namen Karl, Barbara, Boris, Anton, Karla, Katrin, Peter, Diana in dieser Reihenfolge in eine Hashtabelle mit m=10 ein. Benutzen Sie dabei die Divisionsmethode als Hashfunktion und die Grundform des quadratischen Sondierens (nur Addition). Den Namen wird zur Berechnung der Hashfunktion als Wert jeweils die Summe der Buchstabenwerte ihrer ersten 3 Zeichen zugeordnet, wobei A mit 1, B mit 2,..., Z mit 26 bewertet ist. Geben Sie für jeden eingefügten Namen die Folge der Behälternummern an, die getestet wird. Wie lautet der Inhalt der finalen Hashtabelle? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Aufgabe 4 HeapSort Sortieren Sie die unten stehende Folge absteigend mittels Heapsort. Geben Sie zunächst den initialen Heap an. Geben Sie weiterhin den Heap nach jedem Einsinkenlassen eines Elements an. Zusätzlich zum Heap ist auch noch die bisher sortierte Teilfolge anzugeben. Die Angabe des Heaps kann wahlweise graphisch oder als Array-Einbettung erfolgen. 35, 68, 75, 42, 56, 42, 31, 12, 19, 87, 77

Seite 4 Klausur am 18.9.2010 1661 Datenstrukturen I Aufgabe 5 B-Bäume Von welcher Ordnung ist der folgende B-Baum? 43 29 56 72 21 30 50 59 80 Löschen Sie aus dem Baum aus Teilaufgabe folgende Schlüssel in der gegebenen Reihenfolge: 80, 43, 21. Zeichnen Sie den Baum vor und nach jeder Ausgleichoperation und markieren Sie den Knoten, bei dem eine B-Baum-Eigenschaften verletzt wird. Fügen Sie folgende Schlüssel in der gegebenen Reihenfolge in einen leeren B-Baum der Ordnung 1 ein: 21, 59, 30, 29, 56, 80, 50, 43, 72. Zeichnen Sie den Baum jeweils vor und nach einer Split-Operation sowie den vollständig gefüllten Baum. Markieren Sie Knoten, bei denen B-Baum- Eigenschaften verletzt werden. Sind beide Nachbarn bei einer Balance-Operation geeignet, so soll der linke Nachbar verwendet werden.

Kurs 1661 Datenstrukturen I Klausur am 18.9.2010 Seite 5 Aufgabe 6 Intersection für B-Bäume 2e In dieser Aufgabe geht es darum, einen effizienten Algorithmus für folgende Operation auf zwei B-Bäumen der Ordnung b mit Schlüsseltyp T zu entwickeln: intersection: BTree(T) BTree(T) set(t) intersection(b 1, B 2 ) = {k member(b 1, k) member(b 2, k)} Es sei n die Anzahl der Schlüssel im ersten, m die der Schlüssel im zweiten B-Baum. (d) Welches Verfahren wurde im Kurstext vorzugsweise verwendet, um die Operation intersection auf geordneten Darstellungen von Mengen schnellstmöglich auszuführen und dabei eine geordnete Ausgabemenge zu erhalten? Beschreiben Sie das Verfahren kurz und informell. Was ist dabei die beste erzielbare Zeitkomplexität im worst-case? Wie kann man diese gegebenenfalls unter Berücksichtigung der Datenorganisation der Mengendarstellung (z.b. für B-Bäume) verbessern? Begründen Sie jeweils! Welche im Kurstext vorgestellte Hilfsstruktur können Sie verwenden, um einen In-Order-Durchlauf auf einem B-Baum der Ordnung b mit n Schlüsseln in O(n) Zeit ohne rekursive Aufrufe zu realisieren? Denken Sie dabei an das im Kurstext vorgestellte Verfahren zur Eliminierung rekursiver Aufrufe. Wie ist die Speicherplatzkomplexität für diese Datenstruktur in diesem Anwendungsfall? Durchläufe durch Datenstrukturen realisiert man oft mittels besonderer Hilfs- Datenstrukturen, sogenannter Iteratoren. Diese haben zwei Operationen: init(b), um einen Durchlauf durch die Datenstruktur B vorzubereiten und bennötigte interne Datenstrukturen zu initialisieren, und next(), um das nächste Element aus B oder, falls es keines mehr gibt, NULL zurückzuliefern. Beschreiben Sie effiziente Algorithmen für init und next eines Iterators für B- Bäume der Ordnung b. Verwenden Sie dabei die Hilfsdatenstruktur aus Teilaufgabe. Nutzen Sie die Erkenntnisse aus und skizzieren Sie einen Algorithmus, der die oben beschriebene Operation intersection in O(n + m) Laufzeit realisiert und höchstens O(log n +logm) Platz für Hilfsstrukturen verwendet. Begründen Sie Laufzeit und Platzbedarf. 5 Punkte 1e 4 Punkte Aufgabe 7 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.