Prüfung Algorithmen und Datenstrukturen I

Ähnliche Dokumente
Prüfung Algorithmen und Datenstrukturen I

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung I (IB)

Prüfung Software Engineering I (IB)

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

Prüfung Softwareentwicklung I (IB)

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung I (IB)

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Prüfung Funktionale Programmierung

Prüfung Software Engineering I (IB)

Prüfung Funktionale Programmierung

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

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

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

NAME, VORNAME: Studiennummer: Matrikel:

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Informatik II, SS 2014

Prüfung Software Engineering II (IB)

Elementare Sortierverfahren

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

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

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

Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Klausur Algorithmen und Datenstrukturen

18. Natürliche Suchbäume

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

Prüfung Software Engineering I (IB)

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

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

5.5 Prioritätswarteschlangen

Klausur Algorithmen und Datenstrukturen

Informatik II Vorlesung am D-BAUG der ETH Zürich

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

Technische Universität München

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

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

Suchen und Sortieren Sortieren. Heaps

9. Natürliche Suchbäume

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

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

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

Klausur zur Vorlesung Algorithmen und Datenstrukturen

2. Klausur Datenstrukturen und Algorithmen SS 2014

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)

Algorithmen und Datenstrukturen I Bruder-Bäume

Informatik II Prüfungsvorbereitungskurs

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

18. Natürliche Suchbäume

Probeklausur zur Vorlesung

Informatik II, SS 2014

Anwendungsbeispiel MinHeap

Datenstrukturen und Algorithmen D-INFK

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Übung Algorithmen und Datenstrukturen

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

Übung Algorithmen und Datenstrukturen

DAP2-Klausur

Klausur Algorithmen und Datenstrukturen

Informatik II, SS 2018

7. Sortieren Lernziele. 7. Sortieren

13. Bäume: effektives Suchen und Sortieren

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

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

13. Bäume: effektives Suchen und Sortieren

Algorithmen und Datenstrukturen

Semestralklausur Informatik I - Programmierung

Datenstrukturen und Algorithmen D-INFK

Informatik II Prüfungsvorbereitungskurs

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

Programmiertechnik II

Algorithmen I - Tutorium 28 Nr. 7

Tutoraufgabe 1 (Sortieralgorithmus):

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Informatik B Sommersemester Musterlösung zur Klausur vom

Übung Datenstrukturen. Bäume

Vorlesung Datenstrukturen

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

3.2. Divide-and-Conquer-Methoden

Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen 2. Klausur SS 2001

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

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

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Einführung in die Programmierung (EPR)

Sortieren II / HeapSort Heaps

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Transkript:

Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2014/15 Prüfung Algorithmen und Datenstrukturen I Datum : 20.01.2015, 10:30 Uhr Bearbeitungszeit : 90 Minuten Prüfer : Prof. Dr. Oliver Braun Hilfmittel : Keine Erreichbare Punkte : 90 Name: Vorname: Matrikelnummer: Studiengruppe: Hörsaal: Platz Nr.: Unterschrift: Bitte kontrollieren Sie, ob Sie eine vollständige Angabe mit 6 Aufgaben auf 8 Seiten erhalten haben. Aufgabe 1 2 3 4 5 6 Summe max. Punkte 15 15 15 15 15 15 90 Anmerkungen: Nutzen Sie einen dokumentenechten Stift für alles was bewertet werden soll. Auch bei Skizzen ist die Verwendung eines Bleistifts nicht zulässig. Schreiben Sie die Lösungen in die dafür vorgesehenen Kästchen bzw. direkt zur Aufgabe. Sollte Ihnen der Platz dabei nicht reichen, benutzen Sie die Rückseite und vermerken Sie das bei der entsprechenden Aufgabe! 1/8

Aufgabe 1 (15 Punkte) Gegeben sei folgende C++-Klasse für einen binären Suchbaum: class BinTree { private: int val; BinTree *left = nullptr, *right = nullptr; public: bool search(const int) const; vector<int> *preorder() const; ; (a) Geben Sie eine Implementierung für search an: (7) (b) Geben Sie eine Implementierung für preorder (Hauptreihenfolge) an: (8) Anmerkung: Sie können an einen Vektor *v1 den Inhalt von *v2 folgendermaßen anhängen: v1->insert(v1->end(), v2->begin(), v2->end()) 2/8

Aufgabe 2 (15 Punkte) Gegeben sei folgende Liste, die in einem Array abgelegt ist: 19, 13, 14, 7, 8, 12, 3, 2 Die Liste soll mit dem Heapsort-Verfahren aus der Vorlesung sortiert werden. Geben Sie alle Heaps an, die als Zwischenergebnisse beim Sortieren erzeugt werden. Kennzeichnen Sie die Heaps immer mit HeapX, wobei Sie für X die Anzahl der noch zu sortierenden Elemente einsetzen, also Heap8, Heap7,, Heap3. Die einelementige und die zweielementige Heap müssen Sie natürlich nicht mehr angeben. 3/8

Aufgabe 3 (15 Punkte) (a) Erstellen Sie einen Treap aus folgenden Werten, wobei die erste Komponente (10) des Tupels jeweils der Schlüssel und die zweite Komponente die Priorität ist: (7,10), (8,9), (10,12), (13,6), (14,8), (15,4), (18,7), (19,18) (b) Erläutern Sie wie das Element (17,3) schrittweise in den Treap eingefügt wird? (5) Geben sie außerdem den Treap nach dem abgeschlossenen Einfügen an. 4/8

Aufgabe 4 (15 Punkte) Gegeben sei folgende C++-Klasse für eine Liste: class List { private: int val; List *next = nullptr; public: List(const int v) : val(v) { List(const int v, List *l) : val(v), next(l) { List *cons(const int v) { return new List(v,this); void sort(); friend std::ostream& operator<<(std::ostream&, const List&); ; (a) Geben Sie eine Implementierung für den Operator << an, so dass eine Liste (5) folgendermaßen ausgegeben wird: [ 5, 7, 18, 12, 13, 19, 5, 1] (b) Geben Sie eine Implementierung für sort an, die die Liste in situ, nach einem (10) beliebigen elementaren Sortierverfahren, sortiert. Geben Sie an welches Sortierverfahren sie implementiert haben. Eine main-funktion könnte so aussehen: int main() { auto list = new List(1); list = list->cons(5)->cons(19)->cons(13) ->cons(12)->cons(18)->cons(7)->cons(5); cout << *list << endl; list->sort(); cout << *list << endl; return 0; 5/8

Die Ausgabe dieser Funktion ist: [ 5, 7, 18, 12, 13, 19, 5, 1] [ 1, 5, 5, 7, 12, 13, 18, 19] 6/8

Aufgabe 5 (15 Punkte) Gegeben sei der AVL-Baum der nur aus einer Wurzel mit dem Schlüssel 10 besteht. Fügen Sie in den AVL-Baum nacheinander die Werte 20, 30, 40, 50, 60 und 55 ein und geben Sie alle Zwischenergebnisse als AVL-Bäume inklusive der Balancefaktoren an, d.h. den AVL-Baum mit 10 und 20, den AVL-Baum mit 10, 20 und 30, Anmerkung: Sie brauchen keine Blätter zeichnen, es reichen die inneren Knoten. 7/8

Aufgabe 6 (15 Punkte) Gegeben sei der folgende C++-Algorithmus: void alg(vector<int> &list) { for (int i = 0; i < list.size()-1; i++) { for (int j = list.size(); j > 0;) { if (i < j) { int k; for (k = 0; k < i; k++) { list[i] += list[j-1]; j = i - k; (a) Geben Sie die Abschätzung des Wachstums der Laufzeit des Algorithmus in der (8) Groß-Oh-Notation an und begründen Sie Ihre Angabe. (b) Geben Sie einen Algorithmus an, der die Liste exakt gleich verändert, aber in (7) Bezug auf die Laufzeit effizienter ist. Geben Sie den Wert Ihres Algorithmus in der Groß-Oh-Notation an. 8/8