Vorlesung Datenstrukturen
|
|
- Sofia Hauer
- vor 7 Jahren
- Abrufe
Transkript
1 Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356
2 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum struct node { Elementtyp data; node* left; // linker Teilbaum / Kindknoten node* right; // rechter Teilbaum / Kindknoten ; Es existieren zwei Verbindungen zu den Kindknoten und Nullzeiger realisieren externe Knoten. Mit dieser Darstellung können die meisten Operationen für binäre Bäume effizient realisiert werden, allerdings lassen sich so nur Bewegungen von der Wurzel weg im Baum ausdrücken, d.h. nur Kindknoten verarbeiten. Für Algorithmen, die auf der direkten Kenntnis der übergeordneten Knoten basieren, bietet sich analog zur doppelt verketteten Liste die Ergänzung der Knotenstruktur um einen Verweis auf den Vorgänger eines Knotens an. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 357
3 Beispiel - Aufbau eines Binärbaums Gesucht Algorithmus zum Aufbau eines möglichst ausgeglichenen Binärbaums mit beliebiger Knotenanzahl Idee Rekursive Verteilung der zu erzeugenden Knotenanzahl gleichmäßig auf die Teilbäume node* exampletree( int count ) { if ( count ) { int leftnodes = count / 2; int rightnodes = count - leftnodes - 1; node* newnode = new node; newnode->left = exampletree( leftnodes ); newnode->right = exampletree( rightnodes ); return newnode; else return 0; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 358
4 Traversieren von Binärbäumen Traversierung geordneter Bäume Im Gegensatz zur linearen Durchmusterung von Listen muss bei Bäumen eine Entscheidung getroffen werden: Diese Entscheidung besteht jedoch nicht darin, welcher Nachfolgerknoten ausgewählt wird (denn die Reihenfolge ist durch die Ordnung bereits vorgegeben), sondern wann ein Knoten bzgl. seiner Kindknoten ausgewertet wird. Traversierung von Binärbäumen Bei Binärbäumen gibt es drei Möglichkeiten: Präorder Inorder Postorder - Traversierung = Auswertung eines Knotens vor seinen Kindern - Traversierung = Auswertung eines Knotens inmitten seiner Kinder - Traversierung = Auswertung eines Knoten nach seinen Kindern Ergebnis der Traversierung Konvertierung einer komplexeren Baumstruktur in eine flache Listenstruktur. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 359
5 Präorder-Traversierung Reihenfolge 1. Auswertung des Knotens 2. Auswertung des linken Teilbaums 3. Auswertung des rechten Teilbaums A void traverse( node* n ) { if ( n ) { process ( n->info ); traverse( n->left ); traverse( n->right ); B I C F J M D E G H K L N O Bezeichnung Ein Knoten wird vor seinen Kindknoten verarbeitet, also Präorder-Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 360
6 Inorder-Traversierung Reihenfolge 1. Auswertung des linken Teilbaums 2. Auswertung des Knotens 3. Auswertung des rechten Teilbaums H void traverse( node* n ) { if ( n ) { traverse( n->left ); process ( n->info ); traverse( n->right ); D L B F J N A C E G I K M O Bezeichnung Ein Knoten wird inmitten seiner Kindknoten verarbeitet, also Inorder-Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 361
7 Postorder-Traversierung Reihenfolge 1. Auswertung des linken Teilbaums 2. Auswertung des rechten Teilbaums 3. Auswertung des Knotens O void traverse( node* n ) { if ( n ) { traverse( n->left ); traverse( n->right ); process ( n->info ); G N C F J M A B D E H I K L Bezeichnung Ein Knoten wird nach seinen Kindknoten verarbeitet, also Postorder-Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 362
8 Level-Order-Traversierung Wunsch Ebenenweise Verarbeitung von Baumknoten Problem A Im Gegensatz zu den bereits bekannten Traversierungs- B C arten entspricht eine ebenenweise Verarbeitung von Baumknoten nicht der natürlichen rekursiven Definition eines Baums. D E F G Lösung H I J K L M N O Um Bäume ebenenweise verarbeiten zu können, ist eine Zwischenspeicherung von Baumknoten nötig, die mit Hilfe der Datenstruktur Schlange realisiert wird. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 363
9 ADT Schlange / Queue ADT Schlange Für viele Aufgaben in der Informatik werden Datenstrukturen benötigt, die nach dem FIFO-Prinzip arbeiten, d.h. dass das zuerst eingefügte Element auch als erstes wieder entnommen wird. Analog zum ADT Stapel wollen wir deshalb einen abstrakten Datentyp für die Datenstruktur Schlange entwickeln. Anwendung Da wir die Schlange konkret zur Baumtraversierung benötigen, muss sie Baumknoten bzw. Zeiger auf Baumknoten verwalten. Dementsprechend gestalten wir die Schnittstelle des ADT: class Queue { // Schlange mit Elementtyp Baumknoten Queue() // Konstruktor ~Queue() // Destruktor bool isempty() // Test auf leere Schlange void enqueue(node* data) // Anstellen an die Schlange node* dequeue() // Abfertigen des ersten Elements Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 364
10 ADT Queue - Interne Struktur class Queue { struct list { ; node* data; // Wir fügen Baumknoten in Schlange ein list* next; list(node* value) { // Hier eine Variante mit struct-konstruktor data = value; next = 0; struct node { Elementtyp data; node* left; node* right; ; list* head; list* tail; // Einfügen und Entnehmen von Elementen erfolgt bei // Schlangen an den entgegengesetzten Enden einer Liste Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 365
11 ADT Queue - Methoden public: Queue() { head = tail = 0; bool isempty() { return (head == 0); void enqueue(node* value) { list* t = tail; tail = new list(value); if (!head) head = tail; else t->next = tail; node* dequeue() { if (isempty()) { printf("schlange leer"); return 0; else { node* value = head->data; list* next = head->next; delete head; head = next; return value; ~Queue() { // Löschen aller Listenelemente ; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 366
12 Level-Order-Traversierung Um die ebenenweise Verarbeitung zu ermöglichen, modifizieren wir die Präorder-Traversierung: Zu Beginn fügen wir den Wurzelknoten des Baumes in eine Schlange ein. Solange die Schlange nicht leer ist entnehmen wir den aktuell zu verarbeitenden Knoten n aus der Schlange, verarbeiten ihn und fügen die Kinder von n in die Schlange ein void traverselevelorder( node* n ) { Queue q; q.enqueue( n ); A while (!q.isempty() ) { n = q.dequeue(); B C process( n->info ); if ( n->left ) q.enqueue( n->left ); if ( n->right ) q.enqueue( n->right ); H D I J E K L F M N G O Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 367
13 Binärer Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 368
14 Binärer Suchbaum Definition Ein binärer Suchbaum ist ein binärer Baum, dessen interne Knoten mit einem Schlüssel verbunden sind. Schlüssel sind eindeutig, es gibt keine verschiedenen Knoten mit dem selben Schlüssel. 8 Alle Knoten, deren Schlüssel kleiner als der Schlüssel eines 4 12 Knotens ist, befinden sich im linken Teilbaum Alle Knoten, deren Schlüssel größer als der Schlüssel eines Knotens ist, befinden sich im rechten Teilbaum Konsequenz Die Gestalt der Datenstruktur Suchbaum ist abhängig von ihren Werten! Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 369
15 Suchen im binären Suchbaum (1) Rekursiver Algorithmus Aus der Gestalt eines Suchbaums ergibt sich ein rekursiver Suchalgorithmus: Ist der aktuell betrachtete Baumknoten n ein externer Knoten erfolgloser Abbruch der Suche sonst Vergleich des gesuchten Schlüssels mit dem Schlüssel von n Stimmen die Schlüssel überein erfolgreicher Abbruch der Suche - Ist der gesuchte Schlüssel kleiner, suche im linken Teilbaum von n - Ist der gesuchte Schlüssel größer, suche im rechten Teilbaum von n Initialisierung Startknoten des Algorithmus ist die Wurzel des Suchbaumes Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 370
16 Suchen im binären Suchbaum (2) Quelltext Algorithmus liefert Zeiger auf Baumknoten mit gefundenem Element oder Nullzeiger node* search( node* tree, int value ) { if ( tree == 0 ) { // value nicht vorhanden return 0; if ( tree->data == value ) return tree; // Element gefunden if ( value < tree->data ) return search( tree->left, value ); // Suche links else return search( tree->right, value ); // Suche rechts Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 371
17 Suchen im Suchbaum Suche nach Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 372
18 Suchen im Suchbaum Suche nach ist kleiner als 50 Verzweigung nach links Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 373
19 Suchen im Suchbaum Suche nach Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 374
20 Suchen im Suchbaum Suche nach ist größer als Verzweigung nach rechts Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 375
21 Suchen im Suchbaum Suche nach Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 376
22 Suchen im Suchbaum Suche nach ist kleiner als Verzweigung nach links Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 377
23 Suchen im Suchbaum Suche nach Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 378
24 Suchen im Suchbaum Suche nach ist größer als Verzweigung nach rechts Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 379
25 Suchen im Suchbaum Suche nach Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 380
26 Suchen im Suchbaum Suche nach wurde mit nur 5 Vergleichen gefunden, bei 31 Elementen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 381
27 Suchen im Suchbaum Suche nach Komplexitätsanalyse Die Suche benötigt in einem ausgeglichenen binären Suchbaum bei N Knoten maximal ld(n) Schritte. Damit hat das Suchverfahren eine Komplexität von O(log N). Vergleich Im Vergleich zur linearen Laufzeit der Suche nach einem Listenelement oder einer Feldkomponente arbeitet die Suche nach einem Element in einem ausgeglichenen Suchbaum wesentlich effizienter. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 382
28 Einfügen in einen Suchbaum (1) Such- und Einfügeoperationen eines Suchbaums sind eng miteinander verwandt: Der Knoten, an dem die Suche (nach einem nichtvorhandenen Schlüssel) abbricht, entspricht der Position, an dem ein neuer Knoten mit diesem Wert eingefügt werden muss. Der eingefügte bzw. bereits vorhandene Knoten wird als Funktionswert zurückgeliefert. node* insert(node* tree, int value) { node* temp; if (tree) { if (tree->data == value) return tree; if (value < tree->data) if (tree->left) return insert(tree->left, value); else tree->left = temp = new node; else if (tree->right) return insert(tree->right, value); else tree->right = temp = new node; else temp = new node; temp->data = value; temp->left = 0; temp->right = 0; return temp; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 383
29 Einfügen in einen Suchbaum (2) Komplexitätsanalyse Analog der Suchoperation benötigen wir bei einem ausgeglichenen binären Suchbaum mit N Knoten höchstens ld(n) Vergleiche um die Einfügeposition zu bestimmen und einen neuen Knoten anzuhängen Komplexität O(log N). Im Vergleich zur linearen Laufzeit zum Bestimmen der Einfügeposition in einer Liste arbeitet das Einfügen in einen ausgeglichenen Suchbaum wesentlich effizienter. Aber Bei falscher Reihenfolge des Einfügens kann ein Baum sehr schnell degenerieren. Wenn das Ausgeglichenheitskriterium verletzt wird, tendiert die Laufzeit für Such- und Einfügeoperationen in die Größenordnung der entsprechenden Listenoperationen. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 384
30 Ende der Vorlesung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 385
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
MehrTeil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1
Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Balancieren eines Suchbaums Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 396 Baumgestalt vs. Zeitkomplexität Vorteile eines ausgeglichenen binären Suchbaums
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
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:
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. 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
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:
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
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
MehrÜbung Datenstrukturen. Bäume
Übung Datenstrukturen Bäume Übung Binärbaum 7 2 10 1 3 5 9 34 8 7 11 13 17 7 25 19 3 Aufgabe 1 Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an! Übung Binärbaum Aufgabe
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
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
MehrB6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden
Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren
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
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
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
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B4.1 Definitionen und Eigenschaften. B4.2 Traversierung. B4.
Algorithmen und Datenstrukturen 28. März 2019 B4. Intermezzo - Bäume Algorithmen und Datenstrukturen B4. Intermezzo - Bäume B4.1 Definitionen und Eigenschaften Marcel Lüthi and Gabriele Röger Universität
MehrAnwendungsbeispiel 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
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
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
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
MehrTrees. November 14, Algorithms & Datastructures 2 Exercises WT 2017
Trees November 14, 2017 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum
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
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
MehrEinführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 28, Seite 15 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
MehrEinfü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,
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
MehrLineare 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
MehrTrees. November 13, Algorithms & Datastructures 2 Exercises WT 2017
Trees November 13, 2018 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum
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
MehrAufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion
Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die
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
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
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)
MehrInformatik II Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:
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
MehrPro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik
Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:
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
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:
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
MehrJava. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java
Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 10 (28.5.2018) 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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,
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
Mehr18. 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
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,
MehrEinfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden
5.6.2 AVL-Bäume Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden AVL-Bäume, benannt nach ihren Erfindern G. M. Adelson- Velskii und E. M. Landis,
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,
MehrEinfü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
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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. 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
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
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
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,...
MehrWiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.
Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten
MehrTutoraufgabe 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
MehrBäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08
Bäume Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Bäume kennen lernen 3 Bäume (abstrakt) Bäume sind
MehrBäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen
2 Ziele Bäume Standardimplementierungen für Bäume kennen lernen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 02/0 4 Bäume (abstrakt) Implementierung von Knoten Bäume
MehrAufbau eines "B-Baums" der Ordnung 3, Teil 1
Aufbau eines "B-Baums" der Ordnung 3, Teil 1 Leerer B-Baum der Ordnung 3. Insgesamt Platz für 3 Werte. + 100 100 + 50 50 100 + 150 50 100 150 Aufbau eines "B-Baums" der Ordnung 3, Teil 1 Leerer B-Baum
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. 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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1
Kapitel 13 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
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer)
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchbäume Autor: Stefan Edelkam Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1 Bäume Idee: Bäume
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
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen
Algorithmen und Datenstrukturen 03. April 2019 B6. Symboltabellen a Algorithmen und Datenstrukturen B6. Symboltabellen 1 Marcel Lüthi and Gabriele Röger Universität Basel 03. April 2019 a Folien basieren
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 13. April 2018 1 Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 10, Donnerstag 9.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 10, Donnerstag 9. Januar 2014 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.
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;
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
MehrKomplexitä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
MehrBinäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
Mehr7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
Mehr10. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 10. Hausübung Algorithmen und Datenstrukturen Sommersemester 2009 Abgabetermin: Montag, 22.06.2009, 10:00 Uhr 15.06.2009
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.
MehrGeordnete Binärbäume
Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (07 - Skiplisten) Prof. Dr. Susanne Albers
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Dr. Susanne Albers Skiplisten. Perfekte Skiplisten 2. Randomisierte Skiplisten 3. Verhalten von randomisierten Skiplisten
MehrÜbung 4: Die generische Klasse AvlBaum in Java 1
Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (
MehrSuchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen
Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen
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
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.
Mehr13. 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
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
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
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
MehrMengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
// Mengen Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps n Ziel: ufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: n eines Elements n eines Elements
MehrImplementierung eines Baumes (in Python)
Satz: in maximal vollständiger binärer aum der Höhe h enthält 2 h-1 lätter und 2 h -1 Knoten und 2 h-1-1 inneren Knoten. eweis: 1. nduktionsanfang: h= 1 Der aum besteht nur aus der Wurzel, die auch das
Mehr1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.
1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13. November 2015 13. November 2015 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume
Mehr