Übersicht Datenstrukturen und Algorithmen. Übersicht. Datentypen. Vorlesungen 4-5: Datenstrukturen (K10) Prof. Dr. Erika Ábrahám

Größe: px
Ab Seite anzeigen:

Download "Übersicht Datenstrukturen und Algorithmen. Übersicht. Datentypen. Vorlesungen 4-5: Datenstrukturen (K10) Prof. Dr. Erika Ábrahám"

Transkript

1 Übersicht und Algorithmen Vorlesungen 4-5: (K10) 1 Theorie Hybrider Systeme nformatik 2 datenstrukturen-und-algorithmen/ Diese Präsentation verwendet in Teilen Folien von Joost-Pieter Katoen. 25. April 2014 und 02. Mai Der abstrakte Datentyp Liste Einfach verkettete Doppelt verkettete 4 Traversierungen und Algorithmen 1/54 und Algorithmen 2/54 Übersicht Datentypen Der abstrakte Datentyp Liste Einfach verkettete Doppelt verkettete 4 Traversierungen Definition (Abstrakte und konkrete Datentypen) Ein Datentyp definiert Wertebereiche und Operationen darauf (Signatur). Ein abstrakter Datentyp (ADT) formalisiert eine Spezifikation der Eigenschaften, die die Wertebereiche und die Operationen aufweisen. Ein konkreter Datentyp implementiert einen abstrakten Datentyp in einer Programmiersprache. und Algorithmen 3/54 und Algorithmen 4/54

2 Datentypen Bemerkungen Ein abstrakter Datentyp kann mehrere konkrete Datentypen als mplementierung haben. Die Operationen sind Algorithmen. Datenkapselung (data encapsulation) Kein direkter Datenzugriff auf die Daten, nur über die Operationen. Die Menge der Operationen bezeichnet man als Schnittstelle. Beispiel Abstrakter Datentyp Person: Wertebereich: [A Z][a z] N (Paare Name und Alter) Operation aging: Eingabevariablen: Person p = (name, age), natürliche Zahl n Vorbedingung: keine Ausgabevariable: Person p = (name, age ) Nachbedingung: name = name age = age + n Konkreter Datentyp der Person implementiert: class Person{ string name; unsigned int age; } void aging(unsigned int n){ age = age + n; } (Ein- und Ausgabe des Objektes vom Typ Person geschieht implicit durch this.) und Algorithmen 5/54 und Algorithmen 6/54 Effizienz von mplementierungen Elementare Datentypen Die Effizienz einer ADT-mplementierung ist entscheidend. 1. Die Platzkomplexität der internen Datenrepräsentation 2. Die Zeitkomplexität der Operationen Üblicherweise ein Kompromiss zwischen Zeit- und Platzeffizienz: Schnelle Operationen benötigen in der Regel zusätzlichen Speicherplatz. Platzsparende Repräsentationen führen oft zu langsameren Operationen. Elementare (primitive) Datentypen Elementare Datentypen sind durch die Programmiersprache oder sogar vom Rechnerarchitektur vorgegeben: bool, & : bool bool bool,... int, + : int int int,... float, + : float float float, und Algorithmen 7/54 und Algorithmen 8/54

3 Der Datentyp Zeiger (pointer) Zeiger (pointer) Ein Zeiger speichert eine Speicheradresse. Referenzierung: Adresse eines Objektes De-referenzierung: Objekt bei der Adresse Beispiel Referenzierung p o Der Datentyp Array (Feld) Array (Feld) N Daten eines Datentyps t werden so im Speicher abgelegt, dass ein Zugriff auf die Daten über ndizes möglich ist (Startindex meistens 0). Zur Speicherung wird meistens ein zusammenhängender Speicherblock mit Startadresse d start verwendet (statische Größe). i-tes Element a[i] eines eindimensionalen Arrays a: Speicheradresse d start + i datasize(t) (Laufzeit in Θ(1)) Beispiel datasize(t) De-referenzierung p d start a[0] a[1] a[2] a[i] d start + i datasize(t) und Algorithmen 9/54 und Algorithmen 10/54 Übersicht 1 sind Datentypen, die andere Datentypen kombinieren: Stapel (Kellerspeicher, Stack) Warteschlange (queue) Liste Baum Der abstrakte Datentyp Liste Einfach verkettete Doppelt verkettete 4 Traversierungen und Algorithmen 11/54 und Algorithmen 12/54

4 Lineare Datenstruktur Stapel (stack) ADT Stapel Stapel (stack) Stapel (Kellerspeicher, Stack) Ein Stapel (Kellerspeicher, Stack) der Größe N speichert eine Ansammlung von Elementen und bietet folgende Operationen: bool isempty(stack s) gibt true zurück, wenn s leer ist und andernfalls false. void push(stack s, int e) fügt das Element e in den Stapel s ein; der Stapel muss weniger als N Elemente enthalten. Quellen: flickr.com by Pierre, pieter musterd, superscheeli, Marjon Kruik, Marcel Grieder int pop(stack s) entfernt das zuletzt eingefügte Element und gibt es zurück; pop(s) benötigt einen nicht-leeren Stapel s. Schreib-Operationen: Last-in first-out (LFO) Vorne/oben einfügen Zuletzt eingefügtes Element (vorne/oben) entfernen und Algorithmen 13/54 und Algorithmen Stapelimplementierung Stapelimplementierung push(41) push(11) pop() class Stack{ int content[n]; int top = -1; bool isempty() { return (top == -1); } top top top void push(int e) { top = top + 1; content[top] = e; } top int pop() { top = top - 1; return content[top + 1]; } /54 und Algorithmen 15/54 Die Laufzeit ist jeweils Θ(1). n pop muss der Fall eines leeren Stapels nicht berücksichtigt werden (siehe Vorbedingung). Auch in push muss der Fall eines vollen Stapels nicht berücksichtigt werden. Eine mplementierung als verkettete Liste vermeidet eine a priori Festlegung der Arraygröße. } und Algorithmen 16/54

5 Stapel: Anwendungen Lineare Datenstruktur Warteschlange (queue) Warteschlange (queue) Anwendungen sender message queue receiver Funktionsaufrufe (Elemente: Parameter/lokale Variablen von Funktionen) Rekursive Auswertung von Termen Syntax Parsing Backtracking... producer user1 user2 user3 task queue print queue worker1 worker2 worker3 printer Quellen: flickr.com by iko, Alexandre Duret-Lutz Schreib-Operationen: First-in first-out (FFO) Vorne/oben einfügen Zuerst eingefügtes Element (hinten/unten) entfernen und Algorithmen 17/54 und Algorithmen 18/54 ADT Warteschlange Warteschlangenimplementierung Warteschlange (queue) Eine Warteschlange der Größe N speichert eine Ansammlung von Elementen und bietet folgende Operationen: bool isempty() gibt true zurück, wenn die Schlange leer ist, andernfalls false void enqueue(int e) fügt das Element e in die Warteschlange ein; die Schlange darf nicht voll sein. enq(0) enq(9) deq() deq() int dequeue() entfernt das schon am längsten in der Warteschlange vorhandene Element und gibt es zurück; benötigt daher eine nicht-leere Warteschlange. Ein Stapel bietet LFO (last-in first-out) Semantik, eine Warteschlange FFO (first-in first-out) und Algorithmen 19/54 und Algorithmen 20/54

6 Warteschlangenimplementierung Warteschlangen: Anwendungen 1 class Queue{ 2 int content[n]; 3 int = 0, = 0; 5 bool isempty() { 6 return ( == ); 7 } 9 void enqueue(int e) { 10 content[] = e; 11 = ( + 1) mod N; 12 } 14 int dequeue() { 15 int e = content[]; 16 = ( + 1) mod N; 17 return e; 18 } 19 } Arraygröße N. Die Laufzeit ist jeweils Θ(1). Der Einfachheit halber werden Überläufe nicht abgefangen. Die Queue ist voll gdw. q. == (q. + 1) mod N. Anwendungen Algorithmen zur Vergabe von Ressourcen an Verbraucher Prozessverwaltung (Ressource: Rechenzeit, Elemente: Prozesse) Druckerverwaltung (Ressource: Drucker, Elemente: Druckaufträge) Message Queues in graphischen Benutzeroberflächen Kommunikation zwischen asynchronen Prozessen (channel)... und Algorithmen 21/54 und Algorithmen 22/54 Die Prioritätswarteschlange Betrachte Elemente, die mit einem Schlüssel (key) versehen sind. Jeder Schlüssel sei höchstens an ein Element vergeben. Schlüssel werden als Priorität betrachtet. Die Elemente werden nach ihrer Priorität sortiert. Prioritätswarteschlange (priority queue) Eine Prioritätswarteschlange der Größe N speichert eine Ansammlung von Elementen und bietet folgende Operationen: bool isempty() gibt true zurück, wenn die Schlange leer ist, andernfalls false. void insert(int e, int k) fügt das Element e mit dem Schlüssel k in die Schlange ein; Schlange darf nicht voll sein. int getmin() gibt das Element in der Schlange mit dem kleinsten Schlüssel zurück; benötigt eine nicht-leere Schlange. und Algorithmen 23/54 Die Prioritätswarteschlange Prioritätswarteschlange (priority queue) (Forts.) void delmin() entfernt das Element mit dem kleinsten Schlüssel aus der Schlange; benötigt eine nicht-leere Schlange. int getelt(int k) gibt das Element e mit dem Schlüssel k aus der Schlange zurück; k muss in der Schlange enthalten sein. void decrkey(int e, int k) setzt den Schlüssel von Element e auf k; e muss in der Schlange enthalten sein. k muss außerdem kleiner als der bisherige Schlüssel von e sein. Wichtige Datenstruktur für Greedy-Algorithmen, Diskrete-Event-Simulationen,... und Algorithmen 24/54

7 Prioritätswarteschlange, unsortiert Prioritätswarteschlange, sortiert ins(0,12) ins(3,7) delmin() getelt(12) ins(0,12) ins(3,7) delmin() getelt(12) schwarz = Element; rot = Schlüssel und Algorithmen 25/54 und Algorithmen 26/54 Zwei Prioritätswarteschlangenimplementierungen Übersicht mplementierung Operation unsortiertes Array sortiertes Array isempty(pq) Θ(1) Θ(1) insert(pq,e,k) Θ(1) Θ(n) getmin(pq) Θ(n) Θ(1) delmin(pq) Θ(n) Θ(1) getelt(pq,k) Θ(n) Θ(log n) decrkey(pq,e,k) Θ(n) Θ(n) Später werden wir eine weitere mplementierung kennenlernen Der abstrakte Datentyp Liste Einfach verkettete Doppelt verkettete 4 Traversierungen Beinhaltet das Verschieben aller Elemente rechts von k. Mittels binärer Suche. und Algorithmen 27/54 und Algorithmen 28/54

8 Lineare Datenstruktur Liste, ihre Elemente und Operationen Liste (list) Füge FügeElement Element mit mitschlüssel Schlüsselke210k13am hinter Anfang der Liste e2 ein ein Entferne Element aus der Element Liste Element e2 Element e32 Element e10 Element e0 Schlüssel k2 Schlüssel k32 Schlüssel k01 Schlüssel k0 Schreib-Operationen: Ein Element an einer gegebenen Position einfügen Ein gegebenes Element entfernen Sortieren... und Algorithmen 29/54 ADT Liste und Algorithmen Liste (Forts.) Eine Liste speichert eine Ansammlung von Elementen mit fester Reihenfolge und bietet (z.b.) folgende Operationen: Element insert(key k) fügt ein Element mit Schlüssel k am Anfang einer nicht-leeren Liste zurück und null wenn die Liste leer ist. void remove(element x) entfernt das Element x aus der Liste. Element search(key k) gibt das (erste) Element aus der Liste mit Schlüssel k zurück und null falls es kein derartiges Element gibt. Element maximum() gibt ein Element mit dem größten Schlüssel aus Element successor(element x) gibt das Nachfolgerelement von Element x in der Liste zurück. Vorbedingung: x ist in der Liste. Element predecessor(element x) gibt das Vorgängerelement von Element x n der Liste zurück. Vorbedingung: x ist in der Liste. void reverse() dreht die Reihenfolge in der Liste um. Vorbedingung: x ist in der Liste. Element minimum() gibt ein Element mit dem kleinsten Schlüssel aus einer nicht-leeren Liste zurück und null wenn die Liste leer ist. der Liste ein. 30/54 ADT Liste Liste und Algorithmen 31/54 und Algorithmen 32/54

9 Einige Aspekte von Vorteile dynamische Datenstruktur sehr große Sammlungen möglich Weitere Aspekte Nachteile kein Direktzugriff auf i-tes Element Was passiert, wenn der gleiche Schlüssel zweimal eingefügt wird? Die Liste wird zwei unterschiedliche Elemente mit dem gleichen Schlüssel enthalten. st eine Liste auch ein Stapel / eine Schlange? Nein, da sie eine unterschiedliche Schnittstelle hat. Aber: können zur mplementierung von Stapeln (stacks) und Schlangen (queues) verwendet werden. Wie arbeitet man eine Liste ab? teration vs Rekursion mplementierung: Einfach verkettete Liste Einfach verkettete Liste Eine einfach verkettete Liste implementiert den ADT Liste. Ein Zeiger zeigt auf das erste Element der Liste Jedes Element hat einen Zeiger next auf das nachfolgende Element next und Algorithmen 33/54 und Algorithmen 34/54 Einfach verkettete Liste umdrehen Einige Aspekte von einfach verketteten 1 void reverse() { 2 Element last = ; 3 Element pos = last.next; 4 Element last.next = null; 6 while(pos!= null){ 7 Element tmp = pos.next; 8 pos.next = last; 9 last = pos; 10 pos = tmp; 11 } 13 = last; 14 } last pos tmp Einige Aspekte Wir sieht eine leere Liste aus? Ein zusätzliches (dummy) Element representiert den kopf Wie kann der Vorgänger eines Elementes bestimmt werden? Zurücklaufen nur durch nochmaliges Hinlaufen möglich und Algorithmen 35/54 und Algorithmen 36/54

10 mplementierung: Doppelt verkettete Laufzeiten mplementierung Doppelt verkettete Liste Eine doppelt verkettete Liste erweitert die einfach verkettete Liste. Zusätzlicher Zeiger zeigt auf das letzte Element der Liste Elemente haben einen weiteren Zeiger pre auf das vorherige Element. next prev Operation einfach verkette Liste doppelt verkettete Liste insert(x) Θ(1) Θ(1) remove(x) Θ(n) Θ(1) search(k) Θ(n) Θ(n) minimum() Θ(n) Θ(n) maximum() Θ(n) Θ(n) search(k) Θ(n) Θ(n) minimum() Θ(n) Θ(n) maximum() Θ(n) Θ(n) successor(x) Θ(1) Θ(1) predecessor(x) Θ(n) Θ(1) Suchen eines Schlüssels erfordert einen Durchlauf der gesamten Liste. Gibt es andere Möglichkeiten, die Daten zu organisieren? und Algorithmen 37/54 und Algorithmen 38/54 Übersicht 1 Graphen Skill Graph (ungerichtet, ungewichtet) 2 3 Der abstrakte Datentyp Liste Einfach verkettete Doppelt verkettete 4 Traversierungen und Algorithmen 39/54 B D A C E Gerichteter Graph A B C Gewichteter Graph und Algorithmen 40/ D E

11 Graphen Bäume Graph Baum Ein Baum ist ein zusammenhängender azyklischer gerichteter Graph. Ein Graph ist ein Tupel (V, E) mit einer menge V von Knoten und einer Menge E V V von Kanten. Ein ungericheter Graph hat eine symmetrische Kantenmenge. Sonst heißt der Graph gerichtet. Ein Graph ist zusammenhängend wenn es zwischen allen zwei Knoten einen Pfad (Folgen von aneinanderliegenden Kanten) gibt. Eine Schleife ist ein Pfad der im gleichen Knoten anfängt und endet. Ein Graph ist azyklisch wenn er keine Schleifen hat. Quelle: Wikipedia und Algorithmen 41/54 und Algorithmen 42/54 Bäume Bäume: Notationen Wurzel (root) Ebene 0 Ebene 1 nnere Knoten (inner nodes) Tiefe eines Knotens Baum nformatik- Baum nformatik-wald Ebene 2 Ebene 3 Ebene 4 Höhe des Baumes Ein Baum ist ein zusammenhängender Wald. Quelle: Ebene 5 Blätter (leafs) und Algorithmen 43/54 und Algorithmen 44/54

12 Bäume: Notationen Binärbäume Notationen für Bäume Es gibt genau einen Knoten, die Wurzel (root), ohne eingehenden Kanten. Ausnahme: Baum mit V = E =. Ein Knoten mit mindestens einer ausgehenden Kante heißt innerer Knoten (inner node). Ein Knoten ohne ausgehenden Kanten heißt Blatt (leaf). Die Tiefe (depth) (Ebene, level) eines Knotens ist sein Abstand, d. h. die Pfadlänge, von der Wurzel. Die Höhe (level) eines Baumes ist die maximale Tiefe seiner Blätter. Definition (Binärbaum) Ein Binärbaum (binary tree) ist ein Baum, in dem jeder Knoten höchstens zwei ausgehenden Kanten hat, die geordnet sind. und Algorithmen 45/54 und Algorithmen 46/54 Binärbäume: mplementierung mplementierung eines Binärbaumes Binärbäume: Vorteile Es gibt eine eindeutige Wurzel (root) Jedes Element bekommt zwei Zeiger (left und right) zu den nachfolgenden Elementen. NB: Azyklisch Linkes Kind von A Vater/Mutter von B und C B 6 left A 12 right C 225 Schlüssel Rechtes Kind von A Beispiel (Vorteile von binären Bäumen) Angenommen, man möchte 31 Elemente vorhalten: Ebene 0 (Wurzel) enthält 1 Element Gesamt: Ebene 1 enthält 2 Elemente 3 Ebene 2 enthält 4 Elemente 7 Ebene 3 enthält 8 Elemente 15 Ebene 4 enthält 16 Elemente 31 Ein Element kann in 5 Schritten (statt 31) erreicht werden. Es gibt auch andere mplementierungen, aber diese Art ist die häufigste. und Algorithmen 47/54 und Algorithmen 48/54

13 Einige Fakten über binäre Bäume Traversierung Traversierung Lemma (Übung) Ebene d enthält höchstens 2 d Knoten. Ein Binärbaum mit Höhe h kann maximal 2 h+1 1 Knoten enthalten. Enthält er n Knoten, dann hat er mindestens Höhe log(n + 1) 1 (log log 2 ). Definition (vollständig) Ein Binärbaum heißt vollständig, wenn er bei Höhe h alle 2 h+1 1 Knoten enthält. Eine Traversierung ist ein Baumdurchlauf mit folgenden Eigenschaften: 1. Die Traversierung beginnt und endet an der Wurzel. 2. Die Traversierung folgt den Kanten des Baumes. Jede Kante wird genau zweimal durchlaufen: Einmal von oben nach unten und danach von unten nach oben. 3. Die Teilbäume eines Knotens werden in festgelegter Reihenfolge (zuerst linker, dann rechter Teilbaum) besucht. 4. Unterschiede bestehen darin, bei welchem Durchlauf man den Knoten selbst (bzw. das dort gespeicherte Element) besucht. und Algorithmen 49/54 und Algorithmen 50/54 norder-traversierung + / void inorder(node node) { 2 if (node!= null) { 3 "(" 4 inorder(node.left); 5 print(node); 6 inorder(node.right); 7 ")" 8 } 9 } Preorder, norder, Postorder / void inorder(node node) { 2 if (node!= null) { 3 inorder(node.left); 4 print(node); 5 inorder(node.right); 6 } 7 } Beispiel (( (8/4)) + (3 5)) Beispiel (norder) 8 / Beispiel (Preorder) + / Linearisierung Eine Aufzählung aller Elemente eines Baumes in der Reihenfolge einer bestimmten Traversierung (ohne Klammern) nennt man Linearisierung. und Algorithmen 51/54 Beispiel (Postorder Umgekehrte Polnische Notation (RPN)) 8 4 / neg und Algorithmen 52/54

14 Preorder, norder, Postorder-Traversierung 1 void preorder(node node) { 2 if (node!= null) { 3 visit(node); 4 preorder(node.left); 5 preorder(node.right); 6 } 7 } 9 void inorder(node node) { 10 if (node!= null) { 11 inorder(node.left); 12 visit(node); 13 inorder(node.right); 14 } 15 } 16 void postorder(node node) { 17 if (node!= null) { 18 postorder(node.left); 19 postorder(node.right); 20 visit(node); 21 } 22 } Preorder, norder, Postorder Satz st von einem (unbekannte) Binärbaum mit eindeutigen Werten sowohl die norder-linearisierung als auch entweder die Preorder- oder die Postorder-Linearisierung gegeben, dann ist der Baum eindeutig bestimmt. Beispiel (Rekonstruktion aus norder- und Preorder-Linearisierung) norder: Preorder: Komplexität Θ(n), wobei n die Anzahl der Knoten ist. und Algorithmen 53/54 und Algorithmen 54/54

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

12. Dynamische Datenstrukturen

12. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty

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

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

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

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

11. Elementare Datenstrukturen

11. Elementare Datenstrukturen 11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische

Mehr

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

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

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

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 Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene

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

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

1 Abstrakte Datentypen

1 Abstrakte Datentypen 1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:

Mehr

Kapitel 12: Induktive

Kapitel 12: Induktive Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester

Mehr

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz http://www.inf.uni-konstanz.de/algo/lehre/ss08/info2 Sommersemester 2008 Sven Kosub

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

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

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 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale

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

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Bäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe

Bäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe S. Staab, Informatik für IM II; Folien nach D. Saupe, sowie W. Küchlin, A.

Mehr

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

8 Elementare Datenstrukturen

8 Elementare Datenstrukturen Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.

Mehr

Motivation Binäre Suchbäume

Motivation Binäre Suchbäume Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in

Mehr

Informatik II Übung 2

Informatik II Übung 2 Informatik II Übung 2 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 7.3.2013

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

Logische Datenstrukturen

Logische Datenstrukturen Lineare Listen Stapel, Warteschlangen Binärbäume Seite 1 Lineare Liste Begriffe first Funktion: sequentielle Verkettung von Datensätzen Ordnungsprinzip: Schlüssel Begriffe: first - Anker, Wurzel; Adresse

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

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

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren

Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren Frank Heitmann heitmann@informatik.uni-hamburg.de 4. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

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

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

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

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe ( Bäume): a) Löschen Sie den Wert aus dem folgenden Baum und geben Sie den dabei

Mehr

Wintersemester 2004/ Dezember 2004

Wintersemester 2004/ Dezember 2004 Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

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

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

Minimale Spannbäume. Übersicht. 1 Spannbäume. 2 Minimale Spannbäume. 3 Greedy Algorithmen. 4 Die Algorithmen von Kruskal und Prim

Minimale Spannbäume. Übersicht. 1 Spannbäume. 2 Minimale Spannbäume. 3 Greedy Algorithmen. 4 Die Algorithmen von Kruskal und Prim Datenstrukturen und Algorithmen Vorlesung 16: (K23) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-1/dsal/ 12. Juni 201

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

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Einfach verkettete Listen Mariano Zelke Datenstrukturen 2/32 Eine Zeiger-Implementierung von einfach verketteten Listen, also Listen mit Vorwärtszeigern.

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

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam

Mehr

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition. 1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 17. November 2017 17. November 2017 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume

Mehr

3 Dynamische Datenstrukturen

3 Dynamische Datenstrukturen 3 Dynamische Datenstrukturen Beispiele für dynamische Datenstrukturen sind Lineare Listen Schlangen Stapel Bäume Prof. Dr. Dietmar Seipel 128 Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester

Mehr

public interface Stack<E> { public void push(e e); public E pop();

public interface Stack<E> { public void push(e e); public E pop(); ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für

Mehr

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Feld. Feld als sequentielle Liste

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

Mehr

Implementierung eines Baumes (in Python)

Implementierung eines Baumes (in Python) Satz: in maximal vollständiger binärer aum der Höhe h enthält 2 h-1 lätter und 2 h -1 Knoten und 2 h-1-1 inneren Knoten. eweis: 1. nduktionsanfang: h= 1 Der aum besteht nur aus der Wurzel, die auch das

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.

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

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition. 1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13. November 2015 13. November 2015 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

Abstrakte Datentypen und Datenstrukturen

Abstrakte Datentypen und Datenstrukturen Abstrakte Datentypen und Datenstrukturen Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP2 SS 2009 21. April 2009 1 Praktikum zu DAP 2 Beginn: Mittwoch

Mehr

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008 Informatik I. Kapitel Rainer Schrader Elementare Zentrum für Angewandte Informatik Köln 8. Mai 008 / / bisher haben wir nur Arrays verwendet, Gliederung Einführung abstrakte Datentypen Listen Stacks und

Mehr

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy

Mehr

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

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

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

Stand der Vorlesung. Vergleich verkettete Liste und sequentielle Liste

Stand der Vorlesung. Vergleich verkettete Liste und sequentielle Liste Stand der Vorlesung Kapitel 5 Elementare Datenstrukturen Felder: Folge gleichartiger Elemente Repräsentiert als statische Liste, sequentiell verwaltete Elemente Feste Länge, statische Struktur Direkter

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

Technische Universität München

Technische Universität München Stand der Vorlesung Kapitel 5 Elementare Datenstrukturen Felder: Folge gleichartiger Elemente Repräsentiert als statische Liste, sequentiell verwaltete Elemente Feste Länge, statische Struktur Direkter

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten

Mehr

6. Verkettete Strukturen: Listen

6. Verkettete Strukturen: Listen 6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten

Mehr

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012 , Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Elementare Datenstrukturen Array Linked List Stack Queue Tree (Feld) (Verkettete Liste) (Stapel) (Warteschlange) (Baum) Einschub:

Mehr

C- Kurs 09 Dynamische Datenstrukturen

C- Kurs 09 Dynamische Datenstrukturen C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

Schnittstellen, Stack und Queue

Schnittstellen, Stack und Queue Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

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

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.

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. Hochschule der Medien Prof Uwe Schulz 1 Februar 2007 Stuttgart Klausur Informatik 2, EDV-Nr 40303/42022 Seite 1 von 2 Name: Matr Nr: Teil 1: Keine Hilfsmittel Bearbeitungszeit: 20 Minuten Teil 1 Teil 2

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. Teil 1 Grundlagen 23 Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85 Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil

Mehr

Bäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe

Bäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe Bäume (trees) können als eine Verallgemeinerung von Listen angesehen werden

Mehr

ALP II Dynamische Datenmengen Datenabstraktion

ALP II Dynamische Datenmengen Datenabstraktion ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen

Mehr

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 13 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 10.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Listen Skip List Hotlist Amortisierte

Mehr

Kapitel 5: Graphen und Graphalgorithmen

Kapitel 5: Graphen und Graphalgorithmen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 5: Graphen und Graphalgorithmen Skript zur Vorlesung Algorithmen und Datenstrukturen

Mehr