Datenstrukturen, Listen und Bäume
|
|
- Emma Berger
- vor 6 Jahren
- Abrufe
Transkript
1 Inhalt: Datenstrukturen, Listen und Bäume Datenstrukturen Definition und Arten Dynamische lineare Datenstrukturen: lineare, verkettete Liste Nichtlineare dynamische Datenstrukturen: Binärbaum Die Umsetzung einfacher Datenstrukturen im Speicher des Rechners erfolgt mit bislang bekannten Mitteln: Strukturen, Felder und mehrdimensionale Felder (Matrizen) Peter Sobe 1
2 Datenstrukturen - Definition Eine Datenstruktur beschreibt die Art der Organisation der Daten im Speicher des Rechners während der Verarbeitung auf Speichermedien (Festplatte, Band, CD, DVD, FlashRAM u.ä.) Die Daten werden dabei in Elemente aufgeteilt. Die einzelnen Elemente werden in regelmäßige Relationen gesetzt, z.b. eine Vorgänger- und Nachfolger-Relation. Peter Sobe 2
3 Datenstrukturen - Definition Aus Als Datenstruktur bezeichnet man das Konstrukt in einem Programm (bzw. im Speicher), das Daten auf eine gewisse Weise speichert. Durch den speziellen Aufbau einer Datenstruktur versucht man gewünschte Funktionen besonders effizient zu implementieren, wobei man zumeist entweder auf geringen Speicherbedarf oder hohe Geschwindigkeit hin optimiert. Durch eine falsche Datenstruktur für ein Problem, kann ein Programm um ein Vielfaches länger für die Lösung benötigen als eines, das auf eine für das Problem besser geeignete Datenstruktur zurückgreift. Peter Sobe 3
4 Aus wikipedia: Datenstrukturen - Definition In der Informatik ist eine Datenstruktur ein mathematisches Objekt zur Speicherung von Daten. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre Verwaltung geeignet zu ermöglichen. Datenstrukturen sind daher nicht nur durch die enthaltenen Daten charakterisiert, sondern vor allem durch die Operationen auf diesen Daten, die Zugriff und Verwaltung realisieren. Die Definition von Datenstrukturen erfolgt durch die Angabe einer konkreten Spezifikation zur Datenhaltung und der dazu nötigen Operationen. Diese konkrete Spezifikation legt das allgemeine Verhalten der Operationen fest und abstrahiert damit von der konkreten Implementierung der Datenstruktur. Peter Sobe 4
5 Datenstrukturen Für viele Anwendungen ist die Wahl einer geeigneten Datenstruktur eine wesentliche Entscheidung Frage: Wie organisiert man die Daten im Speicher, damit sie günstig verarbeitet werden können? Günstig kann heißen: Programmcode zur Verarbeitung einfach und kurz wenig Anweisungen (schneller, weniger Prozessorbelastung) inhaltlich verwandte Elemente stehen nah beieinander (schneller) Geringer Speicherbedarf Beispiele: Lineares Feld mit sortierten Elementen, z.b. für Telefonbucheinträge Baumstruktur mit Verweisen auf Vater- und Mutterelemente zur Nachbildung von Stammbäumen Netzstruktur, z.b. mit Struktur einer elektrischen Schaltung Peter Sobe 5
6 Datenstrukturen - Arten Lineare Strukturen Felder eindimensional indizierte Strukturen Listen, Warteschlangen, Stapel Zirkulare Strukturen einfache Ringe vermaschte Ringe Mehrdimensional indizierte Strukturen Bäume Allgemeiner Baum Binärbaum ( Darstellung als Feld möglich) Netze (allgemeine Graphen) Hash-Strukturen Peter Sobe 6
7 Dynamische Speichertechnik (1) Unter dynamischer Speichertechnik versteht man die Bildung neuer Speicherplätze auf der Basis von Standarddatentypen und deklarierten Strukturen zur Laufzeit. Es wird Speicherplatz zur Laufzeit bereitgestellt und darauf ein neues Element einer Datenstruktur initialisiert. Dieses neue Element wird mit bereits vorhandenen Elementen in der Datenstruktur in Beziehung gesetzt. Ebenso können auch zur Laufzeit Elemente aus der Datenstruktur herausgelöst werden und deren Speicherplatz wieder freigegeben werden. Im Gegensatz werden die bisher benutzen Variablen und Felder als statische Datenstrukturen angesehen. Die Sichtbarkeit und der belegte Speicherplatz wird durch ihre Deklaration im globalen Kontext des Programms oder innerhalb Funktionen bestimmt. Peter Sobe 7
8 Dynamische Speichertechnik (2) Zur Realisierung solcher dynamischer Strukturen werden zwei Technologien benötigt: 1. Die dynamische Speicherallokation und freigabe 2. Die Verwendung der Zeigertechnik zum dynamischen Herstellen und Lösen von Verbindungen von Elementen innerhalb der Datenstruktur Die vom Programmierer geschaffene Organisation der Daten (also wo welches Element im Speicher steht und wie es mit den anderen Elementen in Beziehung gesetzt wird) wird durch Datenstrukturen beschrieben. Peter Sobe 8
9 Dynamische Speichertechnik (3) Die dynamische Speicherallokation und freigabe wird in C mit den Funktionen void *malloc(size_t size); // gibt die Anfangsadr. des // allokierten Bereichs zurück void free(void *addresse); durchgeführt, die in <alloc.h> zu finden sind. Es werden size Bytes allokiert und die Adresse dieses Speicherbereiches zurückgegeben. Ist der Rückkehrwert NULL, ist nicht genügend Speicher vorhanden. Ist die Größe in Bytes bekannt, kann diese direkt als Argument übergeben werden, sonst empfiehlt sich die Verwendung von sizeof(x), welche die notwendige Größe in Bytes für das Element x ermittelt. Bei der Speicherfreigabe mit free ist nur die Adresse des Speicherbereichs anzugeben. Peter Sobe 9
10 Dynamische lineare Datenstrukturen Dynamisches Feld (Wiederholung): eine eindimensionale Datenstruktur Elemente werden durch Zahlenindex angesprochen Feld kann wachsen und schrumpfen durch dynamische Speichertechnik (in C: malloc(), realloc(), free()) Lineare Liste: eine eindimensionale Datenstruktur Liste kann wachsen und schrumpfen Effizientes Einfügen neuer Elemente und Löschen (kein Zahlenindex zum Zugriff) Weitere lineare Datenstrukturen: Warteschlange, Stapel Peter Sobe 10
11 Lineare Liste Element 1 Element 2 Element 3 Listenelement struct list_element { float f; char position[strlen]; Element struct list_element *next; }; typedef struct list_element list_elem_t; list_elem_t *anker = NULL; Peter Sobe 11
12 Zeigertechnik bei linearen Listen Die Verwendung der Zeigertechnik zum dynamischen Herstellen und Lösen von Verbindungen von Objekten und der Datenstruktur erfordert in C den Einsatz des Verbundtyps struct{...}, da die Zeiger in das zu verbindende Objekt einbezogen werden müssen. Da das Objekt selbst eine Struktur ist, muss demzufolge der Zeiger auf die nächste Struktur auch vom gleichen Strukturtyp sein, z.b. struct list_element { float f; // weitere Elemente struct list_element *next; // Zeiger auf Nachfolger-Element }; Peter Sobe 12
13 Lineare Liste - Definition Eine Liste ist eine verkettete Folge von Elementen, die aus Standarddatentypen zusammengesetzt sind und für die gilt: 1. Es gibt genau ein Listenelement, das keinen Vorgänger hat und Listenanfang heißt. Auf dieses Element zeigt der Listenanker. 2. Es gibt genau ein Listenelement, das keinen Nachfolger hat und Listenende heißt. 3. Die übrigen Listenelemente haben genau einen Vorgänger und genau einen Nachfolger. 4. Alle Listenelemente sind vom Listenanker aus durch Nachfolgerbildung in endlich vielen Schritten erreichbar. Peter Sobe 13
14 Operationen mit Listen Als typische Operationen mit Listen gelten: Erzeugen und Einketten eines Listenelements Traversieren einer Liste Ausketten und Löschen eines Listenelements Suchen eines Listenelements Weitere: Anhängen einer Liste an eine Liste Peter Sobe 14
15 Erzeugen und Einketten eines neuen Elements list_elem_t *erzeuge( list_elem_t x ) { list_elem_t *neu; neu= (list_elem_t*) malloc(sizeof list_elem_t); *neu=x; return neu; } Aufruf: list_elem_t daten = {23.5, Waldhausen, NULL}; list_elem_t *ne = erzeuge(daten); einfuegen( pos, ne); Peter Sobe 15
16 Einketten eines Listenelements void einfuegen(list_elem_t *pos, list_elem_t *neu) { /* pos zeigt auf das Listenelement, hinter dem das Listenelement neu eingekettet werden soll */ neu->next=pos->next; pos->next = neu; } Noch nicht berücksichtigt: Einfügen in leere Liste und Einfügen an erster Position 16
17 Einketten eines Listenelements Vorher: pos Wirkung der Funktion: neu Schritt 1: neu->next= pos->next; pos Schritt 2: pos->next = neu; Vorteil: Es muss keine Umverteilung der Elemente im Speicher erfolgen. 17
18 Ausketten und Löschen eines Listenelements void ausketten(list_elem_t *pos) { /* pos zeigt auf Element vor dem auszukettenden Element */ list_elem_t *h; h=pos->next; pos->next=(pos->next)->next; free(h); } Gesonderte Behandlung erforderlich, wenn erstes Element auszuketten ist und wenn einziges (letztes) Element ausgekettet wird. Peter Sobe 18
19 Ausketten und Löschen eines Listenelements Vorher: pos Wirkung der Funktion: Schritt 1: h = pos->next; h Schritt 3: free(h); pos Schritt 2: pos->next = pos->next->next; Peter Sobe 19
20 Suchen eines Listenelements list_elem_t* suche(list_elem_t *anker, char *suchpos) { list_elem_t *a; a=anker; while (a!=null) { if (strcmp(a->posítion, suchpos)==0) return a; else /*Element a gefunden*/ a=a->next; } return NULL; } a a=a->next Peter Sobe 20
21 Traversieren einer Liste void traverse( list_elem_t *anker, void (*f)(list_elem_t *e) ) { list_elem_t *a; a=anker; while (a!=null) { /* mache etwas mit dem aktuellen Element */ (*f)(a); /* hier können auch direkt auszuführende */ /* Anweisungen stehen */ a=a->next; } } Peter Sobe 21
22 Einsatz linearer Liste: Stapel und Warteschlange Stapel (engl. Stack) Datenstruktur mit Operationen: PUSH - Auflegen eines Elements POP - Abnehmen eines Elements IS_EMPTY Abfrage, ob Stapel leer ist Ein Stapel setzt die LIFO Strategie um: Last In First Out Ein Stapel kann günstig mit einer linearen Liste realisiert werden. Peter Sobe 22
23 Einsatz linearer Liste: Stapel und Warteschlange Warteschlange (engl. Queue) Datenstruktur mit Operationen: ENQUEUE - Einfügen eines Elements am Ende DEQUEUE - Entnehmen eines Elements vom Anfang IS_EMPTY Abfrage, ob Warteschlange leer ist Eine Warteschlange setzt die FIFO Strategie um: First In First Out Eine Warteschlange kann ebenfalls günstig mit einer linearen Liste realisiert werden. Peter Sobe 23
24 Nichtlineare dynamische Datenstrukturen Eine nichtlinear verkettete Menge von Elementen (Objekten), die aus Standarddatentypen zusammengesetzt sind, nennt man nichtlineare dynamische Datenstruktur. Solche Strukturen sind vor allem: Bäume (Binärbäume, allg. Bäume) typisch für diese Strukturen ist die Anordnung als Hierarchie Graphen (kreisfreie Graphen, allgemeine Graphen) allgemeine Graphen können netzartige Strukturen beschreiben (z.b. Straßen- und Schienenwege, elektrische Schaltungen, soziale Vernetzungen) Peter Sobe 24
25 Nichtlineare dynamische Datenstrukturen Viele Anwendungsalgorithmen basieren auf solchen nichtlinearen Strukturen. Bei netzartigen Graphstrukturen müssen diese Algorithmen mit erschöpfendem Durchsuchen aller Möglichkeiten arbeiten. Das erfordert programmseitig spezielle Hilfen (globale stacks). Bei Hierarchien (Bäume) reicht die einfache Rekursivität aus. Bei vielen Sonderfällen in Hierarchien nutzt man die s.g. Teile-und- Herrsche-Algorithmen. Diese Algorithmen teilen den aktuellen Bearbeitungsraum in Teilbearbeitungsräume und wenden dann den gleichen Algorithmus rekursiv auf die Teile an (herrschen), solange bis eine weitere Teilung nicht mehr sinnvoll ist. Beispiel: Binärbäume Peter Sobe 25
26 Binärer Baum und Rekursion (1) Wurzel B 0 Linker Teilbaum B 0L Rechter Teilbaum B 0R Binärbaum über Knotenmenge V B 0 = (W 0, B 0L,B 0R ) (W 0,, ) B x = (W x, B xl,b xr ) (W x,, ) mit W 0,B 0, W x,b x, ε V und als leeres Element Indizes werden durch Aneinandereihung gebildet, z.b. x=0l xl = 0LL, x=0r xl = 0RL usw. Ein Baum ist entweder ein einzelner Knoten oder ein als Wurzel dienender Knoten, der mit einer Menge von Bäumen verbunden ist. (beim Binärbaum mit zwei Teilbäumen verbunden) Peter Sobe 26
27 Binärer Baum und Rekursion (2) Verschiedene Strategien zum Traversieren des Baums Preorder: 1. Besuche die Wurzel des Baumes 2. Besuche den linken Teilbaum 3. Besuche den rechten Teilbaum Peter Sobe 27
28 Binärer Baum und Rekursion (3) Verschiedene Strategien zum Traversieren des Baums Inorder (Symmetrische Strategie): 1. Besuche den linken Teilbaum 2. Besuche die Wurzel 3. Besuche den rechten Teilbaum Peter Sobe 28
29 Binärer Baum und Rekursion (4) Verschiedene Strategien zum Traversieren des Baums Postorder: 1. Besuche den linken Teilbaum 2. Besuche den rechten Teilbaum 3. Besuche die Wurzel Peter Sobe 29
30 Binärer Baum und Rekursion (5) Strategien zum Traversieren des Baums (Fortsetzung) Alle bisherigen Verfahren besuchen entweder tiefe Knoten oder links stehende Knoten zuerst. Bei Suchbäumen werden Lösungen u.u. erst spät gefunden. Level-Order-Traversierung: Besuche die Knoten von links nach rechts innerhalb einer Ebene, danach die jeweils tiefere Ebene. Diese Reihenfolge wird nicht durch Zeiger in innerhalb der Baumstruktur unterstützt Diese Reihenfolge wird auch nicht durch Rekursion unterstützt Peter Sobe 30
31 Binärer Baum mit sortierten Daten (1) Baum-Elemente: ID Daten Zeigerlinks Zeigerrechts Zeiger auf Baum-Wurzel: NULL-Zeiger, wenn Nachfolge-Elemente nicht vorhanden: Peter Sobe 31
32 Binärer Baum mit sortierten Daten (2) Suchen eines Elements mit ID=x im sortierten Binärbaum: Knoten = Wurzel Aufsuchen Knoten: falls ID==x dann gefunden, Ende falls x<id: Verfolge Zeiger-links falls x>id: Verfolge Zeiger-rechts Nach Verfolge wird der jeweilige Knoten nach o.g. Regel besucht, solange bis Knoten mit ID gefunden oder ein Verfolgen auf den NULL-Zeiger trifft. Dann ist das gesuchte Element im Baum nicht vorhanden. Peter Sobe 32
33 Bewertung Binärbaum Beispiel: 15 Wurzel im Bild allgemein Berechnung Anzahl Ebenen 4 e Konstruktionsparameter Anzahl Elemente 15 n = 2 e -1 Schritte zum Finden eines Elements 4 (inkl. Zugriff auf Wurzel) s=e s = Peter Sobe 33
Lineare Liste. struct list_element { float f; /* weitere Elemente */ struct list_element *next; /* Zeiger auf Nachfolger-Element */ }; Peter Sobe
Lineare Liste Zeigertechnik zum dynamischen Herstellen und Lösen von Verbindungen zwischen Datenelementen Einsatz des Verbundtyps struct {...} in Kombination mit Zeigern. Da das Element selbst eine Struktur
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Mehr7. Dynamischer Speicher und Datenstrukturen
7. Dynamischer Speicher und Datenstrukturen Inhalt: 7.1 Dynamisch angefrderter Speicher 7.2 Datenstrukturen Die Flien basieren zum Teil auf einen Fliensatz vn R. Grßmann und T. Wiedemann 1 Dynamische Speicherstrukuren
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
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
Mehr5.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
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
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
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
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
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.
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
Mehr7. Organisation von Informationen
Computeranwendung in der Chemie Informatik für Chemiker(innen) 7. Organisation von Informationen Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL7 Folie 1 Grundlagen Programme
MehrAlgorithmen 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
MehrProgrammieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Strukturen Prof. Dr. Nikolaus Wulff Rekursive Strukturen Häufig müssen effizient Mengen von Daten oder Objekten im Speicher verwaltet werden. Meist werden für diese Mengen
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Lineare Listen (1) Einfach verkettete Listen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 148 Wiederholung Felder Vorteil Der Zugriff auf ein beliebiges
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
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
MehrAlgorithmen 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
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
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
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,
MehrÜ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
MehrAlgorithmen & Datenstrukturen
Algorithmen & Datenstrukturen 1. Grundlagen 1.1 Elementare Datenstrukturen 1 Datenstrukturen Gleichartige Daten (ob vom elementaren Datentyp oder strukturiert) werden meist bei abschätzbarer Datenmenge
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 4.1 Grundoperationen Aufgabenstellung: 3 4.1 Grundoperationen Aufgabenstellung: Verwalten
MehrDatenstrukturen 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
MehrBäume 1. Thomas Röfer
Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra
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
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
Mehr13. Bäume: effektives Suchen und Sortieren
13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:
MehrInformatik 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
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)
MehrElementare Datenstrukturen
Organisatorisches VL-09: Elementare Datenstrukturen (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11:15 12:00 Übungen:
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:
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
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
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
MehrADS: Algorithmen und Datenstrukturen
ADS: Algorithmen und Datenstrukturen Teil VII Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 08.
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
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
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
MehrDr. Monika Meiler. Inhalt
Inhalt 13 Listen und Bäume...13-2 13.1 Einfach verkettete lineare Listen...13-2 13.1.1 Vorbetrachtungen zum Programm... 13-2 13.1.2 Programm zum Sortierroblem... 13-4 13.2 Standardoerationen für einfach
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:
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Lineare Listen (2) Doppelt verkettete Listen Ringlisten, Stapel, Schlangen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 175 Doppelt verkettete Listen
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;
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.
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
MehrSpezielle 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
Mehr18. Natürliche Suchbäume
Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile
MehrBinärbäume: Beispiel
Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des
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:
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
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
Mehr16. 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
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
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 & Algorithmen Lösungen zu Blatt 4 FS 15
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 18. März
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.
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 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte
MehrAlgorithmen und Datenstrukturen. Kapitel 2: Datenstrukturen. Skript zur Vorlesung. Algorithmen und Datenstrukturen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 2: Datenstrukturen Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester
Mehr7. 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
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,
Mehr9. 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
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
MehrNatürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
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
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
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Kapitel 3: Elementare Datenstrukturen Mariano Zelke Datenstrukturen 2/18 Einfach verkettete Listen Mariano Zelke Datenstrukturen 3/18 Eine Zeiger-Implementierung
MehrU4-1 Aufgabe 3: einfache malloc-implementierung
U4 3. Übung U4 3. Übung Besprechung der Aufgabe 2: wsort Aufgabe 3: malloc-implementierung Ziele der Aufgabe Zusammenhang zwischen "nacktem Speicher" und typisierten bereichen verstehen Funktion aus der
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
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
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
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
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 216 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Vorstellung des 6. Übungsblatts. Hashing Binäre Suchbäume AVL-Bäume 2 Aufgabe: Hashing mit
MehrÜbungspaket 32 Einfach verkettete, sortierte Liste
Übungspaket 32 Einfach verkettete, sortierte Liste Übungsziele: Skript: 1. Aufbau einer einfach verketteten, sortierten Liste 2. Traversieren von Listen 3. Vereinfachung durch ein Dummy-Element Kapitel:
MehrEINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
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
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
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
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,
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
MehrInformatik Abitur Bayern 2017 / II - Lösung
Informatik Abitur Bayern 2017 / II - Lösung Autoren: Wolf (1) Wagner (2) Scharnagl (3-5) 1a 5 1b Diese Methode vergleicht den Namen des Interpreten eines jeden Elements der Liste mit dem gegebenen Namen.
MehrFallstudie: 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);...
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
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
MehrDatenstrukturen Teil 1. Arrays, Listen, Stapel und Warteschlange. Arrays. Arrays. Array
Datenstrukturen Teil 1,, und Sammelbegriff für Anordnung, Aufstellung, Reihe von gleichen Elementen in festgelegter Art und Weise Werden unterschieden in Standardarrays und assoziative Können ein- oder
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
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 3. Verkettete Listen, Stacks, Queues Verkettete lineare Listen -
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
Mehr