Datenstrukturen und Algorithmen. Vorlesung 8
|
|
- Anna Ziegler
- vor 6 Jahren
- Abrufe
Transkript
1 Datenstrukturen und Algorithmen Vorlesung 8
2 Inhaltsverzeichnis Vorige Woche: ADT Stack ADT Queue Heute betrachten wir: ADT Deque ADT Prioritätsschlange Binomial-Heap
3 Schriftliche Prüfung Informationen Die schriftliche Prüfung findet in der ersten Hälfte aus Seminar 5 statt Dauer: 50 Minuten Alle nehmen mir ihrer Gruppe an der Prüfung Teil! (wie im Stundenplan)
4 Schriftliche Prüfung Aufgaben Die Aufgaben sind der Form: Container + Repräsentierung (Datenstruktur) + Operation Containers: Bag/MultiSet Set/Menge MultiMap List Sortierte Containers für die oben genannten Containers Schwachbesetzte Matrix (sparse matrix)
5 Schriftliche Prüfung Aufgaben Datenstrukturen: Einfach verkettete Listen mit dynamischer Allokation Doppelt verkettete Listen mit dynamischer Allokation Einfach verkettete Liste auf Arrays Doppelt verkettete Listen auf Arrays Operationen: Einfügen (add) Löschen (remove) Suchen (search) Für schwachbesetzte Matrix: Wert ändern (modify), Element von der Position (i,j) suchen
6 Schriftliche Prüfung Aufgaben Beispiel: ADT Set repräsentiert auf doppelt verkettete Liste auf Array Operation: add
7 Schriftliche Prüfung Punkteanzahl 1p Startnote 0.5p Spezifikation der Operation: Header, Vor- und Nachbedingungen add(s, e) pre: s S, e TElem post: s S, s = s e (falls e in s enthalten ist, dann wird e nicht nochmal eingefügt) 0.5p Beschreibung des Containers Ein Set/Menge ist ein Container, deren Elemente eindeutig sind, wobei die Reihenfolge der Elemente keine Rolle spielt (die Elemente haben keine entsprechende Positionen)
8 Schriftliche Prüfung Punkteanzahl 1.25p Repräsentierung 1p Strukturen, die gebraucht werden um den Container zu repräsentieren 0.25p Struktur des Iterators für den Container Set: cap: Integer elems: TElem[] next: Integer[] prev: Integer[] head: Integer tail: Integer firstempty: Integer Iterator: set: Set current: Integer
9 Schriftliche Prüfung Punkteanzahl 4.5p Implementierung der Operation in Pseudocode Bei einer Datenstruktur mit dynamischer Allokation kann man die Operationen allocate und deallocate/free benutzen. Alle anderen Funktionen, die ihr in der Implementierung benutzen wollt, müsst ihr auch implementieren. Bei einer Datenstruktur auf Arrays braucht ihr kein Code für die Vergrößerungsoperation (resize) zu schreiben, aber ihr müsst zeigen wo und wann diese stattfinden muss:... if s.firstempty = -1 end-if
10 Schriftliche Prüfung Punkteanzahl 1.25p Komplexität 0.25p Bester Fall mit Erklärungen 0.5p Schlimmster Fall mit Berechnung und Erklärungen 0.5p Durchschnittlicher Fall mit Berechnung 1p Stil Generisch (mit TElem, TComp, generische Relation) Ist es effizient? Usw.
11 ADT Deque ADT Deque (Double Ended Queue) ist ein Container, wo die Daten an beiden Enden gelesen, eingefügt oder entfernt werden können: push_front und push_back pop_front und pop_back top_front und top_back Man kann ein Stack oder eine Schlange mit einer Deque simulieren, wenn man nicht alle Operationen braucht
12 ADT Deque Mögliche Repräsentierungen für Deque: Zyrkuläres Array Doppelt verkettete Liste Dynamisches Array von Arrays mit konstanter Größe
13 ADT Deque - Repräsentierung Eine interessante Repräsentierung für Deque ist ein dynamisches Array von Arrays mit konstanter Kapazität: Man speichert die Elemente in Arrays mit konstanter Kapazität (Blocks) In einem dynamischen Array speichert man die Adressen der Blocks Alle Blocks außer dem ersten und dem letzten sind voll Der erste Block wir von rechts nach links ausgefüllt Der letzte Block wird von links nach rechts ausgefüllt Falls der erste oder letzte Block voll ist, dann erstellt man einen neuen Block und man speichert die Adresse in dem dynamischen Array Falls das dynamische Array voll ist, dann wird seine Kapazität vergrößert (man allokiert einen größeren Speicherplatz und die Adressen der Blocks werden kopiert, aber nicht geändert)
14 Deque - Beispiel Die Elemente der Deque sind: 76, 19, 45,..., 12, 14,..., 46, 32, 99, 34
15 Deque - Beispiel Informationen, die man speichern muss für die Repräsentierung auf ein dynamisches Array von Blocks: Blockgröße Das dynamische Array von Blockadressen Die Kapazität des dynamischen Arrays Die erste besetzte Position in dem dynamischen Array Die erste besetzte Position in dem ersten Block Die letzte besetzte Position in dem dynamischen Array Die letzte besetzte Position in dem letzten Block Die letzten zwei Felder müssen nicht unbedingt gespeichert werden, wenn man die Anzahl der Elemente aus dem Deque kennt
16 ADT Prioritätsschlange/Vorrangwarteschlange (Priority Queue) ADT Prioritätsschlange ist ein Container, in welchem jedes Element eine zugewiesene Priorität hat In einer Prioritätsschlange hat man Zugriff nur auf das Element mit der höchsten Priorität Es gilt also das HPF Prinzip (Highest Priority First)
17 ADT Prioritätsschlange Generell, kann man die Relation R auf die Menge der Prioritäten definieren: R : TPriority TPriority Das Element mit der höchsten Priorität wird von der Relation R bestimmt Zum Beispiel, falls die Relation R =, dann ist das Element mit der höchsten Priorität das größte Element (Maximum)
18 ADT Prioritätsschlange Domäne: PQ = { pq pq ist eine Prioritätsschlange mit Elementen (e, p), e TElem, p TPriority }
19 ADT Prioritätsschlange - Interface init(pq, R) descr: erstellt eine leere Prioritätsschlange pre: R ist eine Relation auf die Menge der Prioritäten, R : TPriority TPriority post: pq PQ, pq ist eine leere Prioritätsschlange destroy(pq) descr: zerstört eine Prioritätsschlange pre: pq PQ post: pq wurde zerstört
20 ADT Prioritätsschlange - Interface push(pq, e, p) descr: fügt ein neues Element in die Prioritätsschlange ein pre: pq PQ, e TElem, p TPriority post: pq PQ, pq = pq (e,p) pop(pq, e, p) descr: liefert das Element mit der höchsten Priorität aus der Prioritätsschlange und entfernt es von der Schlange. Die Priorität des Elementes wird auch zurückgegeben. pre: pq PQ post: e TElem, p TPriority, e ist das Element mit der höchsten Priorität aus pq und p ist seine Priorität, pq PQ, pq = pq (e,p) throws: ein Underflow Error, falls die Prioritätsschlange leer ist
21 ADT Prioritätsschlange - Interface top(pq, e, p) descr: liefert das Element mit der höchsten Priorität aus der Prioritätsschlange zusammen mit seiner Priorität. Die Prioritätsschlange wird nicht geändert. pre: pq PQ post: e TElem, p TPriority, e ist das Element mit der höchsten Priorität aus pq und p ist seine Priorität throws: ein Underflow Error, falls die Prioritätsschlange leer ist isempty(pq) descr: überprüft ob die Prioritätsschlange leer ist pre: pq PQ wahr, falls pq keine Elemente enthält post: isempty ቊ falsch, ansonsten
22 ADT Prioritätsschlange - Interface isfull(pq) descr: überprüft ob die Schlange voll ist pre: pq PQ wahr, falls pq voll ist post: isfull ቊ falsch, ansonsten Bemerkung! Die Prioritätsschlange kann nicht iteriert werden! Dafür gibt es auch keine iterator Operation.
23 ADT Prioritätsschlange - Repräsentierung Um ADT Prioritätsschlange zu implementieren kann man folgende Datenstrukturen für die Repräsentierung benutzen: Dynamisches Array Verkettete Liste Heap
24 ADT Prioritätsschlange - Repräsentierung Falls die Repräsentierung ein Dynamisches Array oder eine Verkettete Liste ist, dann muss man entscheiden wie die Elemente gespeichert werden: Man kann die Elemente sortiert nach der Priorität speichern Man kann die Elemente in der Reihenfolge, in der sie eingefügt wurden, speichern
25 ADT Prioritätsschlange - Repräsentierung Komplexität der Operationen für die zwei Repräsentierungs- Möglichkeiten: Operation Sortiert Nicht-sortiert push O(n) Θ(1) pop Θ(1) Θ(n) top Θ(1) Θ(n) Was passiert wenn man in einem separaten Feld das Element mit der höchsten Priorität speichert?
26 ADT Prioritätsschlange Repräsentierung auf binären Heap Eine andere mögliche Repräsentierung der Prioritätsschlange ist mit Hilfe eines binären Heaps, in welchem das Element mit der höchsten Priorität in der Wurzel des Heaps gespeichert wird
27 ADT Prioritätsschlange Repräsentierung auf binären Heap Wenn ein Element in die Prioritätsschlange eingefügt wird, dann braucht man nur das Element in den Heap einzufügen (mit bubble-up falls nötig) Wenn ein Element aus der Prioritätsschlange entfernt wird, dann wird die Wurzel des Heaps entfernt (mit bubble-down falls nötig) Bei top wird die Wurzel zurückgeben
28 ADT Prioritätsschlange Repräsentierung Komplexitäten für die unterschiedlichen Repräsentierungen: Operation Sortiert Nicht-sortiert Heap push O(n) Θ(1) O(log 2 n) pop Θ(1) Θ(n) O(log 2 n) top Θ(1) Θ(n) Θ(1) Welche ist die totale Komplexität für folgende Sequenz von Operationen: Man fängt mit einer leeren Prioritätsschlange an Man fügt n Elemente in die Prioritätsschlange Man entfernt n Elemente aus der Prioritätsschlange
29 Prioritätsschlange Anwendungen Aufgaben, die mit Hilfe einer Prioritätsschlange gelöst werden können: Stipendienvergabe (siehe Seminar 5) Triage Prozedur in Krankenhäusern
30 Prioritätsschlange Erweiterung Wir haben die Standard-Operationen aus dem Interface der Prioritätsschlange besprochen: push pop top isempty init Manchmal sind folgende Operationen auch nützlich: Die Priorität eines Elementes erhöhen Ein beliebiges Element löschen Merge zweier Prioritätsschlangen
31 Prioritätsschlange Erweiterung Welche ist die Komplexität dieser Operationen wenn die Prioritätsschlange auf binären Heap repräsentiert ist: Die Priorität eines Elementes erhöhen ist O(log 2 n) wenn man die Position des Elementes kennt Ein beliebiges Element löschen ist O(log 2 n) wenn man die Position des Elementes kennt Merge zweier Prioritätsschlangen hat die Komplexität Θ(n) (man nimmt an, dass beide Prioritätsschlangen n Elemente enthalten
32 Prioritätsschlange andere Repräsentierungen Wenn man kein Merge zwischen Prioritätsschlangen braucht, dann sind binären Heaps gute Repräsentierungen Wenn man die Merge Operation braucht, dann gibt es andere Datenstrukturen, die als Repräsentierung für Prioritätsschlangen besser geeignet sind (kleinere Komplexität) Davon besprechen wir: Binomial-Heap
33 Binomial-Heap Ein Binomial-Heap besteht aus einer Sequenz von Binomial-Bäumen verschiedener Ordnung. Binomial-Bäume können wie folgt rekursiv definiert werden: Ein Binomial-Baum der Ordnung 0 besteht aus einem einzelnen Knoten. Ein Binomial-Baum der Ordnung k besitzt eine Wurzel mit Grad k, deren Kinder genau die Ordnung k-1, k-2,..., 0 (in dieser Reihenfolge) besitzen.
34 Binomial-Baum Beispiel Binomal Bäume der Ordnung 0, 1, 2 und 3
35 Binomial-Baum Ein Binomial-Baum der Ordnung k hat genau 2 k Knoten Die Höhe eines Binomial-Baumes der Ordnung k ist k Wenn man die Wurzel eines Binomial-Baumes der Ordnung k löscht, dann kriegt man k Binomial-Bäume der Ordnung k-1, k-2,..., 2, 1, 0. Ein Binomial-Baum der Ordnung k lässt sich leicht aus zwei Binomial- Bäumen der Ordnung k-1 erstellen (merge), indem einer der beiden Bäume zum am weitesten links stehenden Kind des anderen gemacht wird.
36 Binomial-Baum Merge Zwei Binomial-Bäume der Ordnung 2 (vor dem Merge)
37 Binomial-Baum Merge Merge in einem Binomial-Baum der Ordnung 3 eine Möglichkeit
38 Binomial-Baum Merge Merge in einem Binomial-Baum der Ordnung 3 zweite Möglichkeit
39 Binomial-Baum Repräsentierung Um einen Binomial-Baum zu implementieren kann man folgende Repräsentierung benutzen: Man braucht eine Struktur für die Knoten. Für jeden Knoten speichert man Folgendes: Die Information aus dem Knoten Die Adresse des Vaterknotens Die Adresse des ersten Kind-Knotens Die Adresse des nächsten Bruder-Knotens Für den Baum speichert man die Adresse des Wurzelknotens (und vielleicht die Ordnung des Baumes)
40 Binomial-Heap Ein Binomial-Heap besteht aus einer Sequenz von Binomial-Bäumen mit folgenden Eigenschaften: Jeder Binomial-Baum erfüllt die Heap-Eigenschaft: für jeden Knoten ist der Wert kleiner als die Werte seiner Kinder Es gibt höchstens ein Binomial-Baum der Ordnung k Als Repräsentierung, ist ein Binomial-Heap meistens eine sortierte verkettete Liste, wobei jeder Knoten ein Binomial-Baum enthält und die Knoten nach der Ordnung der Bäume sortiert sind
41 Binomial-Heap Beispiel Binomial-Heap mit 14 Knoten; besteht aus 3 Binomial-Bäume der Ordnung 1, 2 und 3
42 Binomial-Heap Für eine gegebene Anzahl von Elementen n, ist die Struktur des Binomial- Heaps (die Anzahl der Binomial-Bäume und deren Ordnung) eindeutig Die Struktur der Binomial-Heap wird von der binären Darstellung der Zahl n bestimmt Zum Beispiel 14 = = , d.h. ein Binomial-Heap mit 14 Knoten enthält Binomial-Bäume der Ordnung 3, 2 und 1 (sortiert in umgekehrter Reihenfolge 1, 2,3) Zum Beispiel 21 = = , d.h. ein Binomial-Heap mit 21 Knoten enthält Binomial-Bäume der Ordnung 4, 2 und 0
43 Binomial-Heap Ein Binomial-Heap mit n Elementen enthält höchstens log 2 n Binomial- Bäume Die Höhe des Binomial-Heaps ist höchstens log 2 n
44 Binomial-Heap Merge Die interessante Operation des Binomial-Heaps ist die Merge Operation, die auch von anderen Operationen benutzt wird Da beide Binomial-Heaps sortierte verkettete Listen sind, besteht der erste Schritt der Merge-Operation aus dem Merge der zwei sortierten Listen Das Ergebnis des Merges kann zwei Binomial-Bäume derselben Ordnung enthalten. Man muss also die Liste iterieren und Binomial-Bäume derselben Ordnung k werden in einem Binomial-Baum der Ordnung k+1 vereinigt. Bei dem Merge der Binomial-Bäume muss die Heap-Eigenschaft aufbewahrt werden
45 Binomial-Heap Merge Beispiel
46 Binomial-Heap Merge Beispiel Nach dem Merge der zwei verketteten Listen von :
47 Binomial-Heap Merge Beispiel Nach dem Merge der Binomial-Bäume derselben Ordnung:
48 Binomial-Heap Merge Operation Wenn beide Binomial-Heaps n Elemente enthalten, dann ist die Komplexität des Merges O(log 2 n) (die maximale Anzahl der Binomial- Bäume aus einer Binomial-Heap mit n Elementen ist log 2 n)
49 Binomial-Heap andere Operationen Fast alle anderen Operationen für Binomial-Heap benutzen die Merge Operation Push Operation: Um ein neues Element einzufügen erstellt man einen Binomial-Heap, der dieses Element enthält, und man berechnet den Merge mit dem ursprünglichen Binomial-Heap. Komplexität: O (log 2 n) im schlimmsten Fall (Θ 1 amortisiert) Top Operation: Das kleinste Element aus der Binomial-Heap (das Element mit der höchsten Priorität) ist die Wurzel einer der Binomial-Bäumen. Um das Minimum zurückzugeben muss man über die Wurzeln iterieren, also die Komplexität ist O (log 2 n)
50 Binomial-Heap andere Operationen Pop Operation: Das Minimum entfernen heißt die Wurzel einer der Binomial-Bäumen zu entfernen. Wenn man die Wurzel aus einem Binomial-Baum löscht, dann erhält man eine Sequenz von Binomial-Bäumen. Diese Bäume werden als Binomial-Heap betrachtet (in umgekehrter Reihenfolge). Man berechnet den Merge zwischen den neuen Binomial-Heap und den Rest der Elementen aus dem ursprünglichen Binomial-Heap Die Komplexität ist O (log 2 n)
51 Binomial-Heap pop Das Minimum ist in einer der Wurzeln
52 Binomial-Heap pop Aus dem entsprechenden Binomial-Baum bleiben k Binomial-Bäume
53 Binomial-Heap pop Betrachte diese als ein Binomial-Heap
54 Binomial-Heap pop Berechne den Merge zwischen den zwei Binomial-Heaps Erster Schritt der Merge-Operation:
55 Binomial-Heap pop Zweiter Schritt der Merge-Operation:
56 Binomial-Heap andere Operationen Priorität eines Elementes erhöhen: Wenn man ein Zeiger zu dem Element hat, deren Priorität erhöht werden muss, dann kann man die Priorität ändern und dann bubble-up ausführen falls die Priorität größer ist als die Priorität des Vaters (in den Beispielen hohe Priorität heißt kleine Zahl) Komplexität: O (log 2 n) Ein beliebiges Element löschen: Wenn man ein Zeiger zu dem Element hat, das man löschen will, dann kann man seine Priorität auf - setzen (d.h. das Element wird bis zu dem Wurzel verschoben) und dann löscht man ein Element (also die Wurzel) Komplexität: O (log 2 n)
57 Denk darüber nach Verkettete Listen: Man nimmt an, dass es zwei einfach verkettete Listen gibt, die sich in einem Punkt treffen und von da an gemeinsame Knoten haben. Die Anzahl der Knoten aus der zwei Listen vor dem gemeinsamen Teil ist nicht bekannt. Schreibe einen Algorithmus, der den ersten gemeinsamen Knoten findet (Tipp benutze ein Stack)
58 Denk darüber nach Stack und Schlange Wie kann man ein Stack mit Hilfe von zwei Schlangen implementieren? Welche sind die Komplexitäten der Operationen? Wie kann man eine Schlange mit Hilfe von zwei Stacks implementieren? Welche sind die Komplexitäten der Operationen? Wie kann man zwei Stacks auf einem Array implementieren?
59 Denk darüber nach Stack und Schlange Gegeben sei eine Sequenz von Charaktern. Schreibe einen rekursiven Algorithmus, der benachbarte Duplikate entfernt. Zum Beispiel, für die Sequenz mississippi ist das Ergebnis m Gegeben sei eine Zahl k und eine Schlange. Wie kann man die ersten k Elemente der Schlange in umgekehrter Reihenfolge speichern (reverse) z.b. k=4, Schlange: [10, 20, 30, 40, 50, 60, 70, 80, 90], das Ergebnis ist: [40, 30, 20, 10, 50, 60, 70, 80, 90].
60 Denk darüber nach Prioritätsschlange: Wie kann man ein Stack mit Hilfe einer Prioritätsschlange implementieren? Wie kann man eine Schlange mit Hilfe einer Prioritätsschlange implementieren?
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.
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. 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
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
MehrProgrammiertechnik II
2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
MehrDatenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume
1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten
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),
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2013/14 Prof. Dr. Sándor Fekete 1 4.6 AVL-Bäume 2 4.8 Rot-Schwarz-Bäume Rudolf Bayer Idee: Verwende Farben, um den
MehrÜbung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
MehrAmortisierte Analysen
Amortisierte Analysen 26. Mai 2016 1 Einleitung Es gibt viele Datenstrukturen, bei deren Komplexitätsanalyse das Problem auftaucht, dass die Ausführung mancher Operationen Einfluss auf die Komplexität
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrKapitel 3. Speicherhierachie. Beispiel für Cache Effekte. Motivation Externspeicheralgorithmen. Motivation Für Beachtung von Cache Effekten
Kapitel 3 Algorithmen für große Datenmengen Motivation Externspeicheralgorithmen Es werden immer größere Datenmengen gesammelt (WWW, Medizin, Gentechnik ) Daten müssen auf großen externen Massenspeichern
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
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Über Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
MehrBeispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
Mehr- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:
6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)
Mehr368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
Mehr2. Musterlösung. Problem 1: Least Common Ancestor
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Least Common Ancestor pt (a) Aus Zeilen und ist klar, dass LCA(wurzel[T ]) eine Folge von rekursiven
MehrKap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 11. Dynamische Datenstrukturen 11.1 Lineare Liste Eine lineare Liste (auch einfach verkettete Liste ) ist eine Art Array mit flexibler Länge.
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrEin Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.
Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten
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
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
MehrTeil II: Prioritätslisten (Priority Queues)
Teil II: Prioritätslisten (Priority Queues)! Definition und Anwendungen! Binäre Heaps! Index-Heaps mit change- und remove-operation! Binomiale Heaps mit merge-operation Prof. Dr. O. Bittel, HTWG Konstanz
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
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
MehrÜbungen zu Programmierung I - Blatt 8
Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
MehrOne of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu
Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster
MehrBinäre Bäume Darstellung und Traversierung
Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 202/3 24. Vorlesung Amortisierte Analyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Hash-Tabellen Frage: Ziel: Problem: Lösung: Wie groß macht man
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen
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
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrInformatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum
lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum
MehrKap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei
MehrProgrammieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm
Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende
MehrÜbung 13: Priority Queues (Vorrangwarteschlangen 1 )
Übung 13: Priority Queues (Vorrangwarteschlangen 1 ) Definition Eine Priority Queue ist eine Datenstruktur zur Speicherung einer Menge von Elementen, für die eine Halbordnung (Prioritätssteuerung) definiert
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16. Januar 2013 (Balancierte Suchbäume) Junior-Prof. Dr. Olaf Ronneberger
MehrInformatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri
Informatik II PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
MehrCopyright, Page 1 of 8 AVL-Baum
www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist
MehrUntersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
Mehr3. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
MehrJava-Implementierung der Priority-Queue und des Huffman-Algorithmus Effiziente Algorithmen SS12 Übung 4 Aufgabe 5 Johannes Hein
Übersicht Beschreibung der Datenstruktur Seite 1 Schnittstelle PriorityQueue Seite 2 Klasse PriorityQueueException Seite 3 Klasse Data Seite 4 Klasse PriorityQueueImpl Seite 5 Klasse Huffman Seite 8 Aufbau
MehrNiedersächsisches Kultusministerium Juli 2015
18. Informatik A. Fachbezogene Hinweise Die Rahmenrichtlinien Informatik sind so offen formuliert, dass sie Raum für die Gestaltung eines zeitgemäßen Informatikunterrichts lassen. Neue Inhalte der Informatik
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrVorlesung 09: Mengen. Peter Thiemann SS 2010
Vorlesung 09: Mengen Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 43 Inhalt Mengen HashSet LinkedHashSet CopyOnWriteArraySet EnumSet SortedSet NavigableSet
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Elementare Datenstrukturen für dynamische Mengen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel:
MehrÜbungsaufgaben: 1. Objektorientierte Programmierung - Teil 1
Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 1. Das Objekt Bruch mit einem Standardkonstruktor (initialisieren mit 0), einem allgemeinen Konstruktor (Zähler und Nenner können beliebig vorgegeben
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrÜbersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.
Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet
MehrTutoraufgabe 1 (2 3 4 Bäume):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrHTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.
HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrJava. Wir verwenden oft Java für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig.
Komplexität von Algorithmen (Folie 34, Seite 18 im Skript) Wir verwenden oft für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig. Lernziel sind die einzelnen
Mehr9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen
9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
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
MehrSuchbäume mit inneren Knoten verschiedener Knotengrade.
Was bisher geschah rekursive Datenstrukturen: lineare Datenstrukturen: Liste, Stack, Queue hierarchische Datenstrukturen: Bäume allgemeine Bäume Binäre Bäume Unäre Bäume = Listen Tiefe eines Knotens in
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrAVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrÜbersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
MehrMengenvergleiche: Alle Konten außer das, mit dem größten Saldo.
Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrJava Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
MehrIn der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
MehrOPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
MehrVerkettete Listen. Implementierung von einfach verketteten Listen. Implementierung von doppelt verketteten Listen
Verkettete Listen Verwendung von Listen in Java Das Prinzip des Iterators Implementierung von einfach verketteten Listen Implementierung von doppelt verketteten Listen Informatik II: Objektorientierte
Mehr