Übersicht Datenstrukturen und Algorithmen. Übersicht. Datentypen. Vorlesungen 4-5: Datenstrukturen (K10) Prof. Dr. Erika Ábrahám
|
|
- Christel Messner
- vor 6 Jahren
- Abrufe
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 (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
MehrInformatik 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:
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrDatenstrukturen. 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
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
MehrGrundlagen 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.
MehrCounting - 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
Mehr11. 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
MehrAbstrakter 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
MehrTeil 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
MehrVorlesung 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
MehrInformatik 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
Mehr1 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;
MehrDatenstrukturen & 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 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:
MehrKapitel 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 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
MehrEinfü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
MehrDatenstrukturen 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
MehrWiederholung: 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
MehrEinfü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
MehrAlgorithmen 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
MehrVorlesung 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
Mehrf 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
MehrTheoretische 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
MehrAlgorithmen 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,
MehrAlgorithmen 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. 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,
MehrWiederholung 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 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)
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrGraphdurchmusterung, 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,
MehrBä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.
MehrInformatik 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
Mehr8 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.
MehrMotivation 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
MehrInformatik 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
MehrBä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
MehrLogische 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
MehrAlgorithmen 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 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
MehrContainerDatenstrukturen. 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrAlgorithmen 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,
MehrDatenstrukturen. 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,
Mehr13. 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
Mehr13. 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),
MehrTutoraufgabe 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
MehrWintersemester 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
MehrInformatik 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:
MehrMinimale 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrDatenstrukturen. 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.
Mehr1. 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
MehrTechnische 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
Mehr1 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
Mehr3 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
Mehrpublic 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
MehrKeller, 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
MehrProgramm 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
MehrImplementierung 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
MehrAlgorithmen 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.
MehrWas 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,
Mehr1 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
MehrBeispiellö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
MehrAlgorithmen 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
MehrVorlesung 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
MehrAbstrakte 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
MehrInformatik 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
MehrClausthal 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
MehrEINI 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
MehrBä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
MehrStand 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
MehrSchwerpunkte. 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
MehrTechnische 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
MehrInformatik 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
MehrWiederholung. 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:
MehrALP 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
Mehr6. 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
MehrStacks, 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
MehrVerkettete 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
MehrAlgorithmen 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:
MehrC- 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
MehrWillkommen 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:
MehrSchnittstellen, 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
MehrInformatik 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
MehrKapitel 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
MehrPunkte. 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
MehrInhaltsverzeichnis. 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
MehrAdvanced 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
MehrInhaltsverzeichnis. 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
MehrBä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
MehrALP 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
Mehr13 (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
MehrNAME, 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 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
MehrKapitel 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