Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume
|
|
- Theodor Heidrich
- vor 5 Jahren
- Abrufe
Transkript
1 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 Liste Universität Basel 22. März 2018 B3.3 Bäume M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 B3. Verkettete Listen und Bäume Einführung B3. Verkettete Listen und Bäume Einführung Abstrakter Datentyp / Datenstruktur B3.1 Einführung Abstrakter Datentyp Eine Menge von Werten und Operationen, die auf dieser Menge definiert sind. Repräsentation und Implementation bleibt abstrakt. ADT kann mittels verschiedener Datenstrukturen implementiert sein. Datenstruktur Beschreibt wie die Daten organisiert sind Implementation und Repräsentation explizit Organisation so ausgelegt, dass gewisse Operationen effizient ausgeführt werden können. Dieselbe Datenstruktur kann in verschiedenen ADTs benutzt werden. Derselbe Begriff (Beispiel Array) kann sowohl für Datenstruktur als auch Datentyp stehen. M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
2 B3. Verkettete Listen und Bäume Einführung Wiederholung: Multimengen, Warteschlangen und Stapel B3. Verkettete Listen und Bäume Einführung Wissenschaftler des Tages Multimenge Ungeordnet Stapel LIFO Warteschlange FIFO Nobelpreisträger und Gewinner des Turing Awards Pionier in künstlicher Intelligenz Erfinder der verketteten Liste (im Rahmen der IPL Sprache). Simon (Ökonom) Herbert Newell, Allen, and Fred M. Tonge. An introduction to information processing language V. Communications of the ACM (1960). M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Motivation B3.2 Verkettete Liste Arrays sind nicht flexibel genug Brauchen immer grossen, kontinuierlichen Block an Speicher Einfügen ist teuer (vor allem am Anfang) Enqueue oder Dequeue in Warteschlange hat Komplexität O(n) Lösung muss uns erlauben Elemente im Speicher zu verteilen. M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
3 Listen Listen Wie kann man Elemente ordnen die verteilt im Speicher sind? Eine Liste ist eine geordnete Kollektion von n Elementen (n N 0 ) Array: Ordnung kommt von Anordnung in Speicher M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Verkettete Listen Quiz: Komplexität Array / Verkettete Liste Wichtige, flexible Datenstruktur Jeder Knoten speichert sein Datum, sowie eine Referenz (Zeiger) auf Nachfolger Ende muss speziell gekennzeichnet werden (häufig null/none).... oder wir brauchen Referenz auf letztes Element Operation Array Verkettete Liste Zugriff auf beliebiges Element Einfügen, Löschen am Anfang Einfügen am Ende Löschen am Ende Einfügen, Löschen in Mitte Verschwendeter Speicher Take-home Message Verschiedene Datenstrukturen machen verschiedene Trade-offs M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
4 Verkettete Listen: Datenstruktur Einfügen am Anfang class Node [ Item ]: } Beispiele: # Das gespeicherte Datum item : Item # Referenz auf den Nachfolger next : Node # Konstruktur : Erzeugen eines neuen Nodes Node ( item : Item, next : Node [ Item ]) Node( first, None) Node( first, Node( second, None)) Node( first, Node( second, Node( third, None)) M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Einfügen am Ende Weitere Operationen Einfach: Vom Anfang entfernen Traversieren Schwierig: Vom Ende entfernen An beliebiger Position einfügen An beliebiger Position entfernen Element an beliebiger Position lesen/schreiben Einfach/Schwierig bezieht sich auf Aufwand und nicht Implementation. M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
5 Doppelt verkettete Liste Beispiele und Implementation Referenz nicht nur auf Nachfolger, sondern auch vorhergehendes Element Macht Entfernen vom Ende günstig. IPython Notebooks: LinkedList.ipnb M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Rekursive Definition Verkettete Listen: Datenstruktur (rekursiv) Eine Liste L ist die leere Liste oder ein Element H (Head) gefolgt von einer Liste: H, L class List [ Item ]: head : Item tail : List [ Item ] List ( head : Item, tail : List [ Item ]) emptylist = List ( None, None ) Gleich wie Definition mit Node - nur neue Namen: (Node List, item head, next tail) M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
6 Verkettete Listen (rekursiv) Beispiele und Implementation Natürliche, rekursive Implementation vieler Operationen Implementation folgt Datenstruktur def printlist ( list ): if ( list == emptylist ): return "" else : return str ( list. head ) + printlist ( list. tail ) IPython Notebooks: LinkedList.ipnb M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Liste : ADT Liste : ADT Liste ist nicht nur Datenstruktur, sondern auch ADT class List [ Item ]: def getfirst : Item def getlast : Item def size () : int def isempty () : boolean def append ( item : Item ) def addfirst ( item : Item ) def insert ( item : Item, pos : int ) def exists ( item : Item ) : boolean def iterate () -> Iterator Viele weitere Operationen möglich. Design Entscheidung! Beispiel aus Java: docs/api/java/util/list.html ADT erlaubt verschiedene Implementationen derselben Schnittstelle Beispiel aus Java LinkedList In Java: java.util.linkedlist sowie java.util.arraylist Achtung Verschiedene Listen haben dieselbe Schnittstelle, aber Operationen haben nicht dieselbe Komplexität. M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
7 Was ist ein Baum Struktur um Daten hierarchisch anzuordnen. B3.3 Bäume Abbildung: M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Was ist ein Baum Beispiele Rekursive Definition: Baum Ein Baum T der Ordnung n ist entweder der leere Baum, oder besteht aus einem Knoten (genannt Wurzel) sowie maximal n Bäumen (den Unterbäumen von T ). Nicht rekursive Definition in Teil über Graphen Eine Liste ist ein Spezialfall eines Baumes (Baum der Ordnung 1) M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
8 Terminologie Wichtigster Spezialfall: Binärbaum Binärbaum (Binary Tree) Ein Binärbaum T ist entweder der leere Baum, oder besteht aus einem Knoten (genannt Wurzel) sowie maximal 2 Bäumen (den Unterbäumen von T ). Binärbäume haben jede Menge Anwendungen Unser aktueller Fokus M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Terminologie (2) Quiz Voller Binärbaum: Jeder Knoten hat 0 oder 2 Kinder Vollständiger (oder kompletter) Binärbaum: Alle Ebenen sind vollständig gefüllt ausser evtl. die letzte Ebene wobei nur Blätter rechts fehlen dürfen. Perfekter Binärbaum: Alle internen Knoten haben genau 2 Kinder und alle Blätter sind auf der gleichen Ebene Welche der folgenden Bäume sind voll, vollständig oder perfekt? Wie ist es mit dem leeren Baum? M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
9 Höhe eines perfekten Binärbaums Höhe eines vollständigen Binärbaums Theorem Die Höhe eines perfekten Binärbaums der Grösse N (also mit N Knoten) ist log 2 (N + 1) 1. Beweis. Die Anzahl Knoten N eines perfekten Baumes der Höhe h sind N = , +2 h = 2 h+1 1 Auflösen nach h ergibt log 2 (N + 1) = h + 1 h = log 2 (N + 1) 1 Theorem Die Höhe eines vollständigen Binärbaums der Grösse N is log 2 (N) Es stimmt für Höhe 0 (Für N = 1 ist log 2 (1) = 0) Die Höhe nimmt nur um 1 zu, wenn N so vergrössert wird, dass es eine Zweierpotenz wird. D.h ein Knoten ist alleine auf der letzten Ebene. M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Datenstruktur für Binärbaum class BinaryTree [ Item ]: item Item left : BinaryTree [ Item ] right : BinaryTree [ Item ] Traversierung Breitenansatz (breadth-first-search). Eine Ebene nach dem anderen. Tiefenansatz (depth-first-search). Zuerst in die Tiefe, dann links nach rechts. BinaryTree ( item : Item, left : BinaryTree [ Item ], right : BinaryTree [ Item ] ) emptytree = BinaryTree ( None, None, None ) Quelle: billw/justsearch.html M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
10 Depth-first-search Traversierung Implementation Wir unterscheiden drei Hauptarten der DFS Traversierung: Preorder Aktueller Knoten zuerst, danach weiter traversieren Inorder Aktueller Knoten zwischen Traversierung von Unterbäumen Postorder Aktueller Knoten nach Traversierung von Unterbäumen IPython Notebooks: Trees.ipynb M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 ADT für Binärbaum? Teil ADT für Binärbau (nicht mutierend) Genau wie Listen, könnten wir einen Binärbaum als Abstrakten Datentyp definieren. Kein natürliches API um Einfügen der Elemente zu definieren Wo soll eingefügt werden Einfacher Datenstruktur abhängig zu definieren. Später: Kompletter ADT für Binärsuchbaum Einfügeposition wird anhand Ordnung der Elemente bestimmt Nicht mutierende Operationen können einfach definiert werden. class BinaryTree [ Item ]: def item () -> Item def left () -> BinaryTree def right () -> BinaryTree def depth () -> int def isleaf () -> bool def iterate ( order : Order ) -> Iterator M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
11 Implementation mittels Array (1) Der ADT Binärbaum kann auch mittels Array implementiert werden. Linker Teilbaum: Index Wurzel * 2 Rechter Teilbaum: Index Wurzel * Implementation mittels Array (2) Wechseln zwischen Ebenen ohne explizite Links (Kind / Elternknoten) möglich. Speichereffizient für vollständigen Binärbaum Sehr ineffizient wenn Baum zur Liste degenieriert (nur linke oder rechte Teilbäume) Wird beim Heap zur effizienten Implementation einer Vorrangswarteschlange (priority queue) ausgenutzt! Mehr dazu nächste Woche. Quelle: Abbildung 2.26, Algorithms, Sedgewick & Wayne M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43 Quiz Ist die verkettete Liste eine Datenstruktur oder ein ADT? Weshalb ist das Löschen des letzten Elements in einer verketteten Liste schwierig? Können wir beliebige Binärbäume mittels einem Array implementieren oder nur vollständige? Wie ist es mit Bäumen beliebiger Ordnung? Wie unterscheidet sich die Komplexität der Operation left des Binärbaum ADT in den verschiedenen Implementationen (Baum Datenstruktur / Array)? M. Lüthi, G. Röger (Universität Basel) Algorithmen und Datenstrukturen 22. März / 43
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
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
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B3. ADTs, Bags, Stack and Queues Marcel Lüthi and Gabriele Röger Universität Basel 21. März 2019 Abstrakte Datentypen Abstrakte Datentypen : Definition Abstrakter Datentyp
MehrB2.1 Abstrakte Datentypen
Algorithmen und Datenstrukturen 21. März 2018 B2. Abstrakte Datentypen Algorithmen und Datenstrukturen B2. Abstrakte Datentypen B2.1 Abstrakte Datentypen Marcel Lüthi and Gabriele Röger B2.2 Multimengen,
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
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
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. Algorithmen und Datenstrukturen. B7.1 Einführung. B Bäume. B7.3 Rot-Schwarz Bäume
B7. Balancierte Bäume a B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel a Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf
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
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:
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
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
MehrBäume und der Sequence ADT
Bäume und der Sequence ADT Motivation: Der Sequence ADT Bei der Vorstellung verschiedener Implementierungen für Stacks, Queues und Deques wurde vor allem auf die Unterschiede zwischen Arrays fester Größe,
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
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
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
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
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
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B7.1 Einführung. B Bäume. B7.3 Rot-Schwarz Bäume.
B7. Balancierte Bäume a B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel a Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf
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
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
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
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
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
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum
lausthal Informatik II lausthal University, ermany zach@tu-clausthal.de Beispiele Stammbaum 2 1 Unix file hierarchy / Stammbaum (Evolution) bin aaclarke files mandel Point.java stock lib etc cs126 grades
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,
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
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:
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
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
Mehr4.4.1 Implementierung vollständiger Bäume mit Feldern. Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
4.4 Implementierung von Bäumen 4.4.1 Implementierung vollständiger Bäume mit Feldern 1 3 2 7 9 3 4 8 5 17 12 10 6 7 8 13 11 18 9 10 Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
MehrDatenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/45 Datenstrukturen und Algorithmen Vorlesung 3: Elementare Datenstrukturen (K10) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and
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
MehrÜbung 3 Musterlösung
Prof aa Dr Ir Joost-Pieter Katoen Sebastian Junges, Benjamin Kaminski, David Korzeniewski, Tim Quatmann Hinweise: Übung 3 Musterlösung Die Lösungen müssen bis Donnerstag, den 03 Mai um 16:00 Uhr in den
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
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,
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
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
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
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
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
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:
Mehr5.5 Prioritätswarteschlangen
5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition
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
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
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
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
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
Mehr12.3 Ein Datenmodell für Listen
Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste
MehrÜbersicht. Datenstrukturen und Algorithmen. Abstrakte Datentypen. Übersicht. Vorlesung 3: Elementare Datenstrukturen (K10)
Übersicht Datenstrukturen und Algorithmen Vorlesung 3: (K10) Joost-Pieter Katoen (Christian Dehnert) Lehrstuhl für nformatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/
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
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
Mehrpublic interface Stack<E> { public void push(e e); public E pop();
ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
Gliederung 5. Compiler 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
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
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
MehrAbstract Data Structures
Abstract Data Structures October 16, 2012 Algorithms & Datastructures 2 Exercises WS 2012 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz kurz@pervasive.jku.at
MehrAbstract Data Structures
Abstract Data Structures October 30, 2018 Algorithms & Datastructures 2 Exercises WS 2018 Dipl.-Ing. Bernhard Anzengruber University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040
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
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 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
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
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
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
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
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
MehrDatenstrukturen und Algorithmen
Prof. Dr. Erika Ábrahám Datenstrukturen und Algorithmen 1/54 Datenstrukturen und Algorithmen Vorlesungen 4-5: Datenstrukturen (K10) Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/
MehrAlgorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren
Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren Frank Heitmann heitmann@informatik.uni-hamburg.de 4. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II und Red-Black-Trees Dr. Georg Sauthoff 1 AG Praktische Informatik July 1, SoSe 2011 1 gsauthof@techfak.uni-bielefeld.de Suchbäume (Indexdatenstrukturen) Zugriff in O(logn)
MehrOrganisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Feld. Definition Feld
Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 208 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München TUMonline-Einträge: Vorlesung https://campus.tum.de/tumonline/wblv.
MehrKapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java
Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen
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,
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
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
MehrDynamische 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
MehrContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
MehrAlgorithmen und Datenstrukturen 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
MehrDatenstrukturen und Algorithmen SS07
Datenstrukturen und Algorithmen SS07 Datum: 25.4.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Nachbesprechung Serie 4 Challenge der Woche Traversierung von Bäumen Pre-,
MehrEinführung in die Programmiertechnik
Einführung in die Programmiertechnik Klassen und Abstrakte Datentypen Abstrakte Datentypen (ADT) Beschreibung der Datentypen nicht auf Basis ihrer Repräsentation, sondern auf Basis ihrer Operationen und
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Feld als sequentielle Liste. Definition Feld
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 205 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Einführung 2 Grundlagen von Algorithmen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
Mehrelementare Datenstrukturen
elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste
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
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
Mehr