Datenstrukturen & Algorithmen
|
|
|
- Magdalena Ritter
- vor 9 Jahren
- Abrufe
Transkript
1 Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010
2 Übersicht Elementare Datenstrukturen für dynamische Mengen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel: kd-bäume 2
3 Dynamische Mengen Daten speichern und abfragen Daten: Records aus Schlüssel und Satellitendaten class Record { class SatelliteData{ int key; String name; SatelliteData data; String address;... 3
4 Operationen Dynamische Menge S, Schlüssel k, Referenz auf Record x Search(S,k) Insert(S,x) Delete(S,x) Minimum(S) Maximum(S) Successor(S,x) Predecessor(S,x) 4
5 Datenstrukturen Geeignete Datenstruktur je nach Operationen, die effizient unterstützt werden soll Zeitkomplexität wird als Funktion der Grösse n der Menge gemessen Beispiel: Heaps Abfragen von Minimum, Maximum in O(1) 5
6 Stapel & Warteschlangen Dynamische Mengen mit effizientem Einfügen und Entfernen in O(1) Insert(S,x) x = Remove(S) Stapel Einfügen und Entfernen mit last-in-, first- out-strategie (LIFO) Warteschlangen Einfügen und Entfernen mit first-in-, first- out-strategie (FIFO) 6
7 Stapel (LIFO) Einfügen = push, Entfernen = pop, Aufwand O(1) Hier: Implementation mit Feld Implementation mit anderen Datenstrukturen möglich Elemente hier Integers der Einfachkeit halber, Records mit Satellitendaten funktioniern gleich Statusvariable top Stack S top = 5 class Stack { private int top; private int S[]; /* constructor, methods push, pop */ 7
8 Stapel Beispiel push(4); push(6); pop; push(8); pop; pop; Stack S top = 5 8
9 Anwendung Verwaltung von Methodenaufrufen Speichert Rücksprungadresse und lokale Variablen Aufruf einer Methode Push: Rücksprungadresse Push: Speicherplatz für lokale Variablen der aufgerufenen Methode Ende der Methode Pop: lokale Variablen Pop: Rücksprungadresse 9
10 Anwendung Stack H; void H { void e { void l() { ; e(); ; ; l(); ; W(); ; o(); ; ; 10
11 Stack overflow Zu tiefe Verschachtelung von Aufrufen Zu hohe Rekursionstiefe, so dass Stack Speicher zu klein Führt zu Terminierung des Programms Beispiel: worst case Ablauf von Quicksort Rekursive Aufrufe können durch eigene Verwaltung eines Stacks vermieden werden Vorteile Kleinerer Aufwand Programm kann mehr Speicher für Stack allokieren wenn nötig 11
12 Anwendung Nicht-rekursiver QuickSort mit Stack void quicksort(int array[], int left, int right) { Stack leftstack = new Stack(); Stack rightstack = new Stack(); leftstack.push(left); rightstack.push(right); while(!leftstack.isempty()) { left = leftstack.pop(); right = rightstack.pop(); if(left<right) { int p = partition(array, left, right); leftstack.push(left); rightstack.push(p-1); leftstack.push(p+1); rightstack.push(right); 12
13 Warteschlange (FIFO) Einfügen = queue, Entfernen = dequeue, Aufwand O(1) Hier: Implementation mit Feld Implementation mit anderen Datenstrukturen möglich (z.b. verkettete Listen) Statusvariable kopf, ende ende zeigt auf erstes freies Element Queue Q kopf = 3 ende = 8 class Queue { private int kopf, ende; private int Q[]; /* constructor, methods queue, dequeue */ 13
14 Warteschlange Beispiel queue(6); queue(9); queue(11); dequeue; dequeue Queue Q kopf = 3 ende = 8 14
15 Anwendungen Verwaltung von Aufträgen, die mittels einer first-come, first-serve Strategie bearbeitet werden sollen Z.B. Printer Server, Datenbankabfragen über Internet 15
16 Übersicht Elementare Datenstrukturen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel: kd-bäume 16
17 Verkettete Listen Vorteil gegenüber Feldern: maximale Anzahl Elemente ist dynamisch Nachteil: Zugriff auf ein Element in konstanter Zeit mittels Index nicht möglich Können Stacks und Warteschlangen auch mit verketteten Listen implementieren Varianten Einfach verkettete Liste Doppelt verkettete Liste Zyklische Liste (Sortierte Liste) 17
18 Verkettete Listen Listenelemente bestehen aus Schlüssel (oder Referenz auf andere Daten) Zeiger next auf nachfolgendes Listenelement Doppelt verkettet: Zeiger prev auf vorheriges Listenelement Anfang: Zeiger head auf erstes Listenelement Ende: null Zeiger class LinkedList { private class ListElement { ListElement prev, next; int key; ListElement head; /* methods to add elements, etc. */ 18
19 Durchsuchen ListElement Search(int k) { ListElement cur = head; while(cur!=null ll && k!=cur.key) k cur = cur.next; return cur; 19
20 Einfügen Doppelt verkettete Liste void insert(listelement e) { e.next = head; if(head!=null) head.prev = e; head = e; e.prev = null; 20
21 Entfernen Doppelt verkettete Liste void iddlt(litel delete(listelement td){ if(d.prev!=null) d.prev.next = d.next; else head = d.next; if(d.next!=null) d.next.prev = d.prev; 21
22 Wächter Spezielles Wächterobjekt nil, um Randbedingungen zu vereinfachen Verknüpfte Liste zu einem Ring (zyklische Liste) Zeiger auf Wächter nil, ersetzt head Hier doppelt verkettete Liste class CyclicList { private class ListElement { ListElement prev, next; int key; ListElement nil; /* methods to add elements, etc. */ 22
23 Einfügen in Liste mit Wächter void insertelement(listelement e) { e.next = nil.next; nil.next.prev = e; nil.next = e; e.prev = nil; 23
24 Parameterisierte Klasse in Java class LinkedList<T> { private class Element { private Element prev, next; private T data; // Satellitendaten private Element nil; LinkedList() { nil = new Element(); nil.next = nil; nil.prev = nil; void insert(t e) {... /* add other operations */ 24
25 Zeiger und Objekte mit Feldern Was, wenn eine Programmiersprache keine Zeiger zur Verfügung stellt? Implementiere Zeiger und Objekte mit Feldern 25
26 Zeiger und Objekte mit Feldern Liste head Mehrfelddarstellung next key prev Einfelddarstellung
27 Allokieren und Freigeben von Objekten Wollen Operationen auf dynamischen Listen anbieten wie vorher Insbesondere, allokieren und einfügen neuer Objekte Allokieren ähnlich new() in Java Brauchen Zugriff auf freie Elemente in Felder Unterhalte zwei Listen Liste mit Daten Doppelt verknüpft Kopf heisst head Liste mit freien Objekten Einfach verknüpft Kopf heisst free next key prev 27
28 Allokieren und Freigeben x = allocateobject(); insert(x); key[x] = 25; delete(5); next key prev next key prev next key prev 28
29 Übersicht Elementare Datenstrukturen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel: kd-bäume 29
30 Gerichtete Bäume Verallgemeinerung von linearen Listen mit Verkettung zu einer Baumstruktur Wie bei Listen: Elemente enthalten Schlüssel (oder Referenzen auf Satellitendaten) Referenzen zur Verkettung Grundlage für viele Algorithmen z.b. Suchen Heute Binäre Bäume Bäume mit unbeschränktem Grad 30
31 Binäre Bäume class BinaryNode { BinaryNode parent, left, right; itk int key; 31
32 Bäume mit unbeschränktem Grad class Node { Node parent, firstchild, nextsibling; int key; 32
33 Übersicht Elementare Datenstrukturen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel: kd-bäume 33
34 kd-bäume Problem Speichere Position einer Menge von Punkten im d-dimensionalen Raum Wollen effiziente Abfragen wie Gegeben Abfragepunkt, finde nächsten Nachbarn in der Punktmenge Finde k-nächste Nachbarn Finde alle Nachbarn in einem gewissen Radius Naiver Ansatz erlaubt Abfragen in O(n) ( ) 34
35 Kd-Bäume Räumliche Datenstruktur Aufbau der Datenstruktur hat mit räumlicher Anordnung der Daten zu tun Erlaubt effiziente Abfragen in O(lg n) Anwendungen Künstliche Intelligenz, Klassifikation Computergrafik, Ray Tracing 35
36 Konstruktion kd-baum teilt Raum rekursiv entlang einer Split- Ebene in zwei Halbräume Jeder Knoten Speichert einen Punkt Definiert eine Split-Ebene durch den Punkt Split-Ebenen Sind immer achsenparallel Orientierung der Split-Ebene gegeben durch Tiefe im Baum Alle Punkte im linken Teilbaum liegen unter der Split-Ebene, im rechten Teilbaum über der Split- Ebene Siehe auch p 36
37 Beispiel Menge von Punkten in 2D kd-baum 37
38 Konstruktion Balancierter kd-baum axis it ist eine Koordinatenachse (x oder y in 2D) cycle(axis) rotiert durch die Koordinaten- achsen: cycle(x) = y, cycle(y) = x node constructkdtree tkdt (set of points, axis) if set of points is empty return null; else { select median point along axis split set of points into set below and above median create node with location of median point node.left = kdtree(points below median, cycle(axis)) node.right = kdtree(points above median, cycle(axis)) return node 38
39 Einfügen Eingabe: neuer Punkt Ausgabe: kd-baum der neuen Punkt enthält Ablauf Traversiere kd-baum bis zu einem Blatt Bei jedem Knoten, entscheide basierend auf Vergleich von Position von Knoten und neuem Punkt, in welchen Teilbaum zu gehen Wenn Blatt erreicht, erstelle neuen Knoten, der dem Blatt als Kind angehängt wird 39
40 Einfügen Neuer Punkt (3,5) 40
41 Nächster Nachbar Input: Abfragepunkt, Punktemenge in kd-baum Output: Punkt im kd-baum, der am nächsten beim Abfragepunkt liegt Ablauf Traversiere kd Baum bis zu Blatt, in das der Abfragepunkt fällt Blattknoten ist Kandidat dat für nächster Nachbar Traversiere Baum zurück zur Wurzel, bei jedem Knoten Falls Knoten näher als bisheriger Kandidat, wird neuer Kandidat Falls im anderen Teilbaum näherer Punkt möglich, traversiere anderen Teilbaum 41
42 Beispiel Nächster Nachbar von Abfragepunkt (3.5, 4.5) kd-baum 42
43 Beispiel Nächster Nachbar von Abfragepunkt (6.5, 0) kd-baum 43
44 Nächstes Mal Kapitel 11: Hashtabellen 44
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
Informatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo [email protected] 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
Informatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo [email protected] 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,
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
Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing [email protected] www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
Ü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:
Doppelt verkettete Listen (1)
Doppelt verkettete Listen (1) Verkettete Listen bestehen aus einer Menge linear angeordneter Objekte. Anordnung realisiert durch Verweise. Unterstützen Operationen Insert, Delete, Search, usw. (nicht unbedingt
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
5.3 Doppelt verkettete Listen
5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt
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.
9. Natürliche Suchbäume
Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten
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
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
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
elementare Datenstrukturen
elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber [email protected] elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste
Fallstudie: Online-Statistik
Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...
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
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.
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
13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume
Algorithmen und Datenstrukturen 22. März 2018 B3. Verkettete Listen und Bäume Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume B3.1 Einführung Marcel Lüthi and Gabriele Röger B3.2 Verkettete
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume Marcel Lüthi and Gabriele Röger Universität Basel 22. März 2018 Einführung Abstrakter Datentyp / Datenstruktur Abstrakter Datentyp Eine Menge
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
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:
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
Spezielle Datenstrukturen
Spezielle Datenstrukturen Stapel (Stack) Beschreibung der Datenstruktur Stapel Ein Stapel (engl. Stack), auch Stapelspeicher oder Keller bzw. Kellerspeicher genannt, ist eine Datenstruktur, in der Daten
Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
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
Ü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
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
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
Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT
Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus Algorithmen verbrauchen Ressourcen Rechenzeit
Programmieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
4.2 Daten und Datenstrukturen
4.2 Daten und Datenstrukturen Daten Fundamentale Objekte, die in der Rechenanlage erfasst gespeichert ausgegeben (angezeigt, gedruckt) bearbeitet gelöscht werden können. Beispiele: Zahlen, Zeichenfolgen
Datenstrukturen, Listen und Bäume
Inhalt: Datenstrukturen, Listen und Bäume Datenstrukturen Definition und Arten Dynamische lineare Datenstrukturen: lineare, verkettete Liste Nichtlineare dynamische Datenstrukturen: Binärbaum Die Umsetzung
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Ü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)
Anwendungsbeispiel MinHeap
Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n
Programmieren 2 Übung Semesterwoche 2
Programmieren 2 Übung Semesterwoche 2 1. Stack (LIFO: Last-In--First-Out) Implementieren und testen Sie eine Klasse Stack, so dass beliebig viele Objekte eines vorgegebenen Datentyps (z. B. String) auf
Nachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume
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
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
7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
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
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
Dynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
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
Sortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: [email protected] Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
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
Datenstrukturen. Ziele
Datenstrukturen Ziele Nutzen von Datenstrukturen Funktionsweise verstehen Eigenen Datenstrukturen bauen Vordefinierte Datenstrukturen kennen Hiflsmethoden komplexer Datenstrukten kennen Datenstrukturen
Prüfung Algorithmen und Datenstrukturen I
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2016/17 Prüfung Algorithmen und Datenstrukturen I Datum : 23.01.2017, 08:30 Uhr
Ü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
Tutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
