Aufgabe 1 Allgemeine Fragen. a) Beschreiben Sie, was man unter einer Datenstruktur versteht.

Größe: px
Ab Seite anzeigen:

Download "Aufgabe 1 Allgemeine Fragen. a) Beschreiben Sie, was man unter einer Datenstruktur versteht."

Transkript

1 Aufgabe Allgemeine Fragen a) Beschreiben Sie, was man unter einer Datenstruktur versteht. Eine Datenstruktur ist eine bestimmte Art, Daten zu verwalten und miteinander zu verknüpfen, um in geeigneter Weise auf diese zugreifen und diese manipulieren zu können. Datenstrukturen sind immer mit bestimmten Operationen verknüpft, um genau diesen Zugriff und diese Manipulation zu ermöglichen. b) Beschreiben Sie, was man unter einem Algorithmus versteht. Ein Algorithmus ist eine präzise (in einer festgelegten Sprache abgefasste) endliche Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer elementarer (Verarbeitungs-)Schritte. c) Gegeben seien zwei Funktionen f : N N und g : N N. Beschreiben Sie, was f O(g) bedeutet. Mathematische Definition: f O(g) c, n n n : f(n) c + g(n) f wächst asymptotisch nicht schneller als g. DSA - /

2 Gegeben sei folgendes Struktogramm: Aufgabe Suchalgorithmen Funktion zur Suche in einem Feld Funktionsname: suche Parameter: feld: Array aus Objekten vom Typ int; element : int Rückgabe: Position in feld, an der element gefunden wurde, - sonst ja feld = null nein return - pos := ; solange pos < feld.length ja feld[pos] = element nein return pos pos := pos + a) Geben Sie eine statische Java-Methode suche an, die zu dem gegebenen Struktogramm äquivalent ist. public static int suche(int[] feld, int element) { if ( feld == null) { } else { 4 int pos = ; 5 while (pos < feld.length) { if ( feld [pos] == element) { 7 return pos; 8 } else { 9 pos++; } } } return ; 4 } DSA - /

3 b) Wie wird der oben beschriebene Suchalgorithmus genannt? Lineare Suche oder sequentielle Suche c) Was ist die best-case- und die worst-case-laufzeit des Algorithmus? Geben Sie jeweils ein Szenario an, wann diese Fälle eintreten. best-case: O(), wenn feld() == element worst-case: O(n), wenn element nicht in feld enthalten ist d) Ein anderes, wesentlich effizienteres Verfahren zur Suche in einem Feld ist die sogenannte binäre Suche. Beschreiben Sie, wie diese funktioniert.. Ist das übergebene Feld leer, so ist das gesuchte Element nicht enthalten. Prüfe, ob Element in der Mitte des Feldes mit dem gesuchten Element übereinstimmt. Stimmt es nicht überein, teile das Feld in zwei Teile 4. Ist das gesuchte Element größer, so rufe den Algorithmus rekursiv mit dem rechten Teilfeld auf 5. Ist das gesuchte Element kleiner, so rufe den Algorithmus rekursiv mit dem rechten Teilfeld auf e) Welche Voraussetzungen müssen erfüllt sein, damit man die binäre Suche anwenden kann? Das Feld muss sortiert sein Auf das Feld muss wahlfrei zugegriffen werden können DSA - /

4 Aufgabe Listen Gegeben sei folgendes Java-Interface für einen Stack: public interface Stack<T> { public void push(t obj) throws Exception; public T pop() throws Exception; 4 public T top() throws Exception; 5 public boolean isempty(); } a) Beschreiben Sie, wie die Methoden push, pop und top arbeiten. push: legt obj als neues oberstes Element auf dem Stack ab pop: nimmt das oberste Element vom Stack ab und gibt es als Rückgabewert zurück top: liefert das oberste Element zurück, belässt es aber auf dem Stack b) Im Zusammenhang mit Stacks spricht man häufig auch von LIFO. Beschreiben Sie, was LIFO bedeutet. LIFO = Last In First Out; das Element, das zuletzt dem Stack hinzugefügt wurde wird als erstes entnommen. c) Eine andere Datenstruktur, die in der Vorlesung behandelt wurde arbeitet nach dem FIFO-Prinzip. Welche ist das? Die Queue oder Warteschlange d) Viele verkettete Datenstrukturen implementieren die Iterable-Schnittstelle. Welche Methoden werden darin definiert und was ist ein Iterator in Java? Die Iterable-Schnittstelle definiert lediglich die Methode iterator(), die einen Iterator für die gegebene Datenstruktur zurückliefert. Ein Iterator ist ein abstrakter Zeiger auf die Elemente der Datenstruktur. Er bietet die öffentlichen Methoden hasnext() (zur Überprüfung, ob er auf dem letzten Element der Datenstruktur steht), next() (zur Übergabe des aktuellen Objekts und zur Vorrückung des Zeigers) und remove() (zur Entfernung des zuletzt gelesenen Objekts aus der Datenstruktur) an. DSA - 4/

5 Aufgabe 4 Sortieren Gegeben sei folgendes Null-basiertes Array A: a) Sortieren Sie das Array A mittels Bubblesort. Geben Sie die Belegung des Arrays nach jedem Durchlauf an b) Bubblesort ist ein sogenanntes stabiles Sortierverfahren. Erklären Sie was das bedeutet. Ein stabiles Sortierverfahren behält die Reihenfolge der Datensätze mit gleichem Sortierschlüssel bei. DSA - 5/

6 c) Bubblesort wird in der Regel als in-place-algorithmus implementiert. Erklären Sie was das bedeutet. Welche Platzkomplexität hat Bubblesort demnach? Ein in-place-algorithmus benötigt, zusätzlich zu dem für die Speicherung der zu bearbeitenden Daten benötigten Speicherplatz, nur eine konstante Speichermenge. Daher ist die Platzkomplexität von Bubblesort O(). d) Was ist die best-case- und die worst-case-laufzeit von Bubblesort? Geben Sie jeweils ein Szenario an, wann diese Fälle eintreten. best-case: O(n), wenn das Feld bereits sortiert ist worst-case: O(n ), wenn das Feld absteigend sortiert ist e) Ein Sortieralgorithmus, der nach dem Divide-and-Conquer-Prinzip vorgeht ist Quicksort. Beschreiben Sie welche Rolle das sogenannte Pivot-Element dabei spielt und erklären Sie, wie dieses Element beschaffen sein sollte. Das Pivot-Element wird zur Aufteilung (Divide) des Felds genommen. Alle Elemente, die kleiner (oder gleich) dem Pivot-Element sind werden in einem Array zusammengefasst und alle Elemente, die größer sind in einem anderen. Diese beiden Teilarrays sollten in etwa gleichgroß sein, das Pivot-Element sollte nach Möglichkeit also jeweils in der Mitte der zu sortierenden Elemente liegen. f) Was ist die best-case- und die worst-case-laufzeit von Quicksort? Geben Sie jeweils ein Szenario an, wann diese Fälle eintreten. best-case: O(n log(n)), wenn das Pivot-Element das Feld in zwei gleichgroße Teile teilt worst-case: O(n ), wenn das Pivot-Element das größte respektive kleinste Element im Feld ist DSA - /

7 g) Aus dem unsortierten Array A soll ein Heap aufgebaut werden. Geben Sie sowohl den Baum ohne Heap-Eigenschaft an, als auch alle Zwischenschritte nach jeder Einsickerphase. Baum ohne Heap-Eigenschaften: Einsickern von 8: Einsickern von 9: DSA - 7/

8 Aufgabe 5 Bäume Gegeben sei der folgende geordnete Baum B : a) Erzeugen Sie mittels Binarisierung aus dem gegebenen geordneten Baum B einen Binärbaum B b) Erklären Sie, was man unter einem binären Suchbaum versteht. Handelt es sich bei dem Binärbaum B aus Aufgabenteil a) um einen Suchbaum? In einem Suchbaum wird jedem Knoten ein Schlüssel zugeordnet. Der linke Teilbaum eines Knotens enthält nur Schlüssel, die kleiner (oder gleich) dem des Knotens sind und der rechte Teilbaum enthalten nur Schlüssel, die größer (oder gleich) dem des Knotens sind. Der Baum aus Aufgabenteil a) ist ein Suchbaum, da jeder Knoten (maximal) zwei Kinder hat und er die Suchbaumeigenschaften besitzt. DSA - 8/

9 c) Geben Sie in Pseudocode ein Verfahren an, mit dem sich die in B enthaltenen Elemente absteigend sortiert ausgeben lassen. Die Laufzeit des Verfahrens soll in der Komplexitätsklasse O( V ) (mit V = Knoten des Baums) liegen. Baumsortierung: Daten : Suchbaum B Ergebnis : Ausgabe der Knotenwerte in absteigender Sortierung Beginn wenn B ist nicht leer dann rekursiver Aufruf von Baumsortierung mit rechtem Unterbaum; Ausgabe von Knotenwert der Wurzel; rekursiver Aufruf von Baumsortierung mit linkem Unterbaum; Ende Ende Die in B gespeicherten Werte werden nun in einem 4-Baum B gespeichert: d) Fügen Sie den Wert 8 in B ein. Gehen Sie dabei nach dem Bottom- Up-Verfahren vor. Der entstehende Baum wird im Folgenden als B 4 bezeichnet DSA - 9/

10 e) Wandeln Sie B 4 in einen äquivalenten Rot-Schwarz-Baum B 5 um f) Wandeln Sie B 5 in einen AVL-Baum B um. Geben Sie für jeden Knoten die AVL-Balance an g) Erklären Sie anhand von B 5 und B, warum AVL-Bäume nicht ganz ausgeglichen sind, Rot-Schwarz-Bäume hingegen als vollständig ausgeglichen bezeichnet werden. Bei einem AVL-Baum darf sich die Tiefe der beiden Unterbäume in jedem Knoten um maximal unterscheiden. Dies bedeutet aber, dass der Baum nicht vollständig ausbalanciert sein muss. Bei einem Rot-Schwarz-Baum hingegen hat jeder Weg von der Wurzel bis zu einem Blatt die exakt gleiche Anzahl an schwarzen Knoten. DSA - /

11 Die in B gespeicherten Werte werden nun in einem B-Baum B 7 gespeichert: h) Bestimmen Sie die Ordnung m von B 7. m = i) Entfernen Sie den Wert 8 aus B DSA - /

12 Aufgabe Graphen Durchlaufen Sie die ausgehenden Kanten eines Knotens in folgender Reihenfolge (Uhrzeigersinn): 4 α a) Führen Sie auf dem folgenden Graphen G, beginnend beim grau hinterlegten Knoten K, eine Tiefensuche (rekursive Variante) durch. Geben Sie an, in welcher Reihenfolge die Knoten besucht werden. A D F R O N Z K E U S K - O - N - R - A - D - Z - U - S - E DSA - /

13 Folgende Knotenliste sei für den Graphen G gegeben:,, 5,,, 4, 5,,,,,,, 4,,,,,,,,,, 5 b) Geben Sie die Kantenliste für den Graph G an.,,,,,,, 4,, 5,,,,,,,,,, 4, 4,, 4,, 5,, 5,,,,,,, 5 c) Geben Sie an, ob G gerichtet und / oder gewichtet ist. G ist ungerichtet, da es paarweise zwischen zwei Knoten jeweils zwei oder keine Kante gibt. G ist ungewichtet, da alle Kanten ein uniformes Kostenmaß haben. d) Geben Sie eine grafische Repräsentation von G an. 5 4 e) Besitzt G einen Eulerweg? Falls ja, geben Sie diesen an, falls nein, begründen Sie warum nicht. G besitzt einen Eulerweg, da G genau zwei Knoten mit einer ungeraden Anzahl an ausgehenden Kanten besitzt, z.b.,,,,, 4 4,, 5 5, DSA - /

14 Folgende Adjazenzmatrix sei für den Graphen G gegeben (ein Kostenmaß bedeutet, dass hier keine Kante existiert): f) Geben Sie an, ob G gerichtet und / oder gewichtet ist. G ist gerichtet, da es paarweise zwischen zwei Knoten nicht immer zwei oder keine Kante gibt. G ist gewichtet, da für jede Kanten ein Kostenmaß angegeben ist. g) Geben Sie eine grafische Repräsentation von G an. 4 5 h) Lässt sich der Dijkstra-Algorithmus zur Berechnung eines kürzesten Wegs durch den Graphen G (beginnend bei dem Knoten ) anwenden. Falls ja, wenden Sie Dijkstra auf G an (geben Sie auch alle Zwischenschritte an), falls nein, begründen Sie warum nicht. Da der Dijkstra-Algorithmus ein Greedy-Algorithmus ist, muss das Optimalitätsprinzip gelten. Dies ist bei negativen Kantengewichten allerdings nicht gegeben. Daher würde Dijkstra nicht den kürzesten Weg finden. DSA - 4/

15 i) Lässt sich der Bellman-Ford-Algorithmus zur Berechnung eines kürzesten Wegs durch den Graphen G (beginnend bei dem Knoten ) anwenden. Falls ja, wenden Sie Bellman-Ford auf G an (geben Sie auch alle Zwischenschritte an), falls nein, begründen Sie warum nicht DSA - 5/

16 Gegeben sei folgender ungerichteter Graph G 4 : j) Wenden Sie den Kruskal-Algorithmus zur Berechnung eines minimalen Spannbaum auf den Graphen G 4 an. Geben Sie den entstehenden Spannbaum grafisch an und berechnen Sie sein Kantengewicht. ((, ), ) + ((, 4), ) + ((, 4), )+ ((, ), ) ((, ), ) + ((, ), ) ((, 5), ) + ((, 5), 4) ((4, ), 5) 4 5 Kantengewicht K w = = 9 DSA - /

17 Aufgabe 7 Hashing In dem neuen Verwaltungssystem der Universität sollen die Datensätze der Studenten in einer Hashtafel verwaltet werden. Als Hashkey soll jeweils die Matrikelnummer m (m N + ) verwendet werden. In der initialen (leeren) Hashtafel (implementiert als Null-basiertes Array) stehen Plätze zur Verfügung. Um die Hashfunktion möglichst einfach zu gestalten wird vorgeschlagen nur die letzte Stelle zu betrachten und darauf das Divisionsverfahren mit p = anzuwenden. a) Bewerten Sie diese Hashfunktion unter den Gesichtspunkten Surjektivität und Gleichverteiltheit. Ist die Tabellengröße sinnvoll gewählt? Die Hashfunktion verspricht zwar gleichverteilt zu sein (wenn man davon ausgeht, dass die Matrikelnummern gleichmäßig vergeben werden), aber es ist nicht surjektiv, da x mod < x {,..., 9}. p ist eine Primzahl, wodurch möglichst wenig Kollisionen auftreten sollten, aber da die Anzahl der Studenten voraussichtlich sehr viel größer ist als, wird es dennoch häufig zu Kollisionen kommen. In die obige Hashtafel sollen nun die ersten Studenten eingetragen werden:. Adam (m = 54). Bettina (m = ). Christoph (m = 444) 4. Doris (m = 9) 5. Erich (m = 57). Franziska (m = 84) b) Fügen Sie die sechs Studenten in die leere Hashtafel ein. Verwenden Sie die oben beschriebene Hashfunktion. Führen Sie ein offenes Hashing durch und verwenden Sie quadratisches Sondieren (mit c = ) als Kollisionsstrategie. Franziska (4) Adam () 4 Bettina () 5 Christoph (4) 7 Doris () 8 Erich (7) 9 DSA - 7/

18 Da die Studentenzahl stetig zunimmt hat die Verwaltung entschieden, dass man besser ein dynamisches Hashverfahren verwenden sollte. Als Bitvektor soll die Matrikelnummer als Binärzahl verwendet werden.. Adam (v = ). Bettina (v = ). Christoph (v = ) 4. Doris (v = ) 5. Erich (v = ). Franziska (v = ) c) Fügen Sie die sechs Studenten erneut in die leere Hashtafel ein. Verwenden Sie dynamisches Hashing. Geben Sie alle Zwischenschritte an, wenn ein Split nötig ist und geben Sie jeweils die globale und lokale Tiefe an. d g = Adam Bettina d l = d g = Bettina Christoph Adam Doris d l = d l = d g = Bettina Christoph Adam Erich Doris Franziska d l = d l = d l = DSA - 8/

19 Aufgabe 8 Pattern Matching Gegeben sei folgendes Pattern P = abac sowie der String S = dababac. a) Wenden Sie den primitiven Brute-Force-Algorithmus zur Pattern-Suche auf P und S an. d a b a b a c a b a c a b a c a b a c a b a c b) Welchen worst-case-aufwand hat der naive Brute-Force-Suchalgorithmus für ein Pattern der Länge m und einen Text der Länge n? Der Algorithmus prüft im worst-case an jeder Stelle des Strings, ob das Pattern hier beginnt. Daher ist die worst-case-komplexität O(m n). c) Beschreiben Sie, wie Algorithmen, wie beispielsweise Knuth-Morris-Pratt, die Textsuche beschleunigen. Durch eine vorgelagerte Patternanalyse ( O(m)) kann das Pattern bei einem Missmatch im besten Fall gleich um mehrere Stellen verschoben werden. Die Zeichen des Suchstrings müssen nicht mehrfach gelesen werden. Daher ergibt sich eine Laufzeit von O(m + n). DSA - 9/

20 Aufgabe 9 Reguläre Sprachen Die reguläre Sprache L enthält alle Wörter w, die über einem gewöhnlichen Ternärsystem (ein Stellwertsystem zur Basis mit den Ziffern, und ) ohne führende Nullen eine durch 9 teilbare positive Zahl z (z N + ) darstellen. a) Geben Sie einen regulären Ausdruck RegEx an, der die Sprache L spezifiziert. RegEx : ˆ( )[] $ b) Geben Sie einen zu RegEx äquivalenten ϵ-nea EA an. q q q q q q q 4 q 8 q 4 q q 7 q q q 5 q 9 q 5 q q 7 q 8 q 9 q DSA - /

21 Gegeben sei folgender endlicher Automat EA : q q q q q 4 c) Ist EA deterministisch? Geben Sie alle Faktoren an, die bei einem DEA erfüllt sein müssen, und bestimmen Sie ob diese auf EA zutreffen. Ein Startzustand: EA hat zwei Startzustände Keine ϵ-kanten: EA hat eine ϵ-kante Je Zustand höchstens eine ausgehende Kante σ Σ : EA hat in Zustand q zwei mit beschriftete ausgehende Kanten Je Zustand mindestens eine ausgehende Kante σ Σ : EA hat in Zustand q keine mit oder beschriftete ausgehende Kante Je Zustand genau eine ausgehende Kante σ Σ d) Geben Sie einen zu EA äquivalenten DEA EA an. {q, q } {q } {q } {q } {q, q } {q } {q } {q, q } {q, q, q 4 } {q } {q } {q, q, q 4 } {q, q, q 4 } {q } {q } q s q q q f q e DSA - /

22 Gegeben sei das folgende Petrinetz P N : Aufgabe Petrinetze t s s t s s 4 t a) Diskutieren Sie anhand von P N die Begriffe aktivierte Transition, tote Transition, lebendige Transition, lebendiges Petrinetze und verklemmungsfreies Petrinetz. Eine Transition t ist aktiviert, wenn alle vorgelagerten Plätze ausreichend Marken enthalten und t schalten kann (z.b. t ). Eine Transition t ist tot, wenn t bei keiner erreichbaren Markierung aktiviert ist (keine tote Transition in P N ). Eine Transition t ist lebendig, wenn aus jeder erreichbaren Markierung in endlich vielen Schritten eine Folgemarkierung erreicht werden kann, die t aktiviert (keine lebendige Transition in P N ). Ein Petrinetz ist lebendig, wenn alle Transitionen bei der gegebenen Anfangsmarkierung lebendig sind (trifft nicht auf P N zu). Ein Petrinetz ist verklemmungsfrei, wenn für jede gültige Markierung mindestens eine Transition aktiviert ist (trifft nicht auf P N zu). DSA - /

23 Aufgabe Entwurfsmuster für Algorithmen a) Beschreiben Sie, was man unter einem Greedy-Algorithmus versteht. Greedy-Algorithmen (gierige Algorithmen) zeichnen sich dadurch aus, dass sie immer denjenigen Folgezustand auswählen, der zum Zeitpunkt der Wahl den größten Gewinn bzw. das beste Ergebnis verspricht (Optimalitätsprinzip muss gelten). b) Beschreiben Sie, was man unter einem Divide-and-Conquer-Algorithmus versteht. Divide-and-Conquer-Algorithmen führen ein zu lösendes Problem auf ein identisches Problem mit kleinerer Eingabemenge zurück. Die Lösung wird anschließend aus den Teillösungen zusammengesetzt. c) Beschreiben Sie, was man unter einem Backtracking-Algorithmus versteht. Backtracking-Algorithmen bauen aus Teillösungen schrittweise eine Gesamtlösung auf. Führt eine verfolgte Lösungsstrategie zu keiner Lösung, so wird der letzte Schritt (die letzten Schritte) rückgängig gemacht und es wird ein alternativer Lösungsweg gesucht. d) Beschreiben Sie, was man unter dynamischer Programmierung versteht. Bei der dynamischen Programmierung werden kleinere Teilprobleme zuerst gelöst (und abgespeichert), um aus diesen größere Teillösungen zusammenzusetzen. e) Beschreiben Sie, was man unter evolutionären Algorithmen versteht. Ausgehend von zufälligen Initiallösungen werden mittels Kreuzung, Mutation und dem survival of the fittest-prinzip nach erreichen eines Schwellwerts eine Lösung präsentiert. DSA - /

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 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 Übungsblatt 4 für die Übung

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 27. Mai 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

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

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume

Mehr

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe Inhaltsverzeichnis Einführende Bemerkungen 11 Das Fach Informatik 11 Zielsetzung der Vorlesung 12 1. Grundbegriffe 1 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Information und Nachricht 1.1.1 Information 1.1.2 Nachricht

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I

Mehr

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

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

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

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 1. Das Objekt Bruch mit einem Standardkonstruktor (initialisieren mit 0), einem allgemeinen Konstruktor (Zähler und Nenner können beliebig vorgegeben

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Klausur Datenstrukturen und Algorithmen SoSe 2012

Klausur Datenstrukturen und Algorithmen SoSe 2012 Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) : 2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

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

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte)

Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte) Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte) Bearbeitungszeit: 100 Minuten (14:15-15:55) Gesamtpunktzahl: 80 Punkte + 30 Zusatzpunkte Die Punktzahlen sind in etwa so bemessen, dass

Mehr

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

Mehr

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Gunter Saake Kai-Uwe Sattler Algorithmen und Datenstrukturen Eine Einführung mit Java 2., überarbeitete und erweiterte Auflage dpunkt.verlag I Grundlegende Konzepte 1 1 Vorbemerkungen und Überblick 3 1.1

Mehr

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

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Institut für Programmierung und Reaktive Systeme 24. Juni Programmieren II. 14. Übungsblatt

Institut für Programmierung und Reaktive Systeme 24. Juni Programmieren II. 14. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Juni 2016 Programmieren II 1. Übungsblatt Hinweis: Auf diesem Übungsblatt finden Sie die fünfte,

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Grundlagen Java. Name: Seite 2

Grundlagen Java. Name: Seite 2 Name: Seite 2 Grundlagen Java Aufgabe 1.1 (5 Punkte) Füllen Sie in der unten gegebenen Methode das übergebene Array mit aufsteigenden natürlichen Zahlen. Beginnen Sie bei 1 und tragen so viele Zahlen ein,

Mehr

Binärbäume. Prof. Dr. E. Ehses, 2014 1

Binärbäume. Prof. Dr. E. Ehses, 2014 1 Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Copyright, Page 1 of 8 AVL-Baum

Copyright, Page 1 of 8 AVL-Baum www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist

Mehr

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Departement Informatik 24. November 2016 Markus

Mehr

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005 Klausur Informatik B Teil 1: Informatik 3 Juli 2005 ACHTUNG Die vorliegende wurde im Juli 2005 geschrieben. Sie umfaßt lediglich den Informatik-3-Teil der Informatik-B-Klausur und ist für eine Bearbeitungszeit

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Rekurrenzen T(n) = T(n 1) + N beschreibt Laufzeitverhalten eines rekursiven Algorithmus

Rekurrenzen T(n) = T(n 1) + N beschreibt Laufzeitverhalten eines rekursiven Algorithmus Algorithmen und Datenstrukturen Übung Rekurrenzen T(n) = T(n ) + N beschreibt Laufzeitverhalten eines rekursiven Algorithmus Bsp. Fibunacci F(n) = F(n ) + F(n ) N F(0) = F() = F(N) rekursive Aufrufe,8

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

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

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel Matrikelnummer: Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel Klausur Einführung in die Informatik Magdeburg, 07.02.2011 Name:

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in

Mehr

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1} 105 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

Programmiertechnik II

Programmiertechnik II 2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen . Graphen viele praktische (Optimierungs-)Probleme sind als graphentheoretische Probleme formulierbar z.b. in Produktionsplanung, Personaleinsatzplanung,.... Grundlagen gerichteter, ungerichteter und gewichteter

Mehr

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

Sortierverfahren. Sortierverfahren für eindimensionale Arrays Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr