Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V10
|
|
- Carl Meinhardt
- vor 5 Jahren
- Abrufe
Transkript
1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V10 Graphen, Bäume, Halden Prof. Dr. Detlef Krömker Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12) Übersicht: Wichtige Datenstrukturen geordnete Strukturen lineare Strukturen nichtlineare Strukturen nicht geordnete Strukturen Liste list string tupel Stapel stack Schlange queue Graph frozenset Menge set Abbildung dictionary Verbund gerichtet azyklisch Feld array Vorrangschlange priority queue Baum tree Record Union 2 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 1
2 Unser heutiges Lernziel Die Brot und Butter Datenstruktur Baum kennen lernen. Eine spezielle Klasse Baum realisieren. gerichtet azyklisch Graph Baum tree Einordnung und Spezialisierung des Datentyps Baum kennenlernen. M-Way Suchbaum search tree Halde heap binary tree quadtree octtree B-Tree 3 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Nicht nur eine Erfindung der Informatik Stammbaum des Wissens Band 1 der Encyclopédie ou Dictionnaire raisonné des sciences, des arts et des métiers (28 Bände, vollendet im Jahr 1772) Jean Baptiste le Rond d'alembert und Denis Diderot 4 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 2
3 Wo sind wir in Teil1? V V 1 V 2 V V 4 V V 6 V V 8 V 9 V10 V11 Begrüßung und Einführung Daten Information Wissen Computer Algorithmus Programm Variablen Datentypen Objekte Elementare numerische Datentypen Zeichenketten Verzweigungen und Schleifen Prozeduren Aggregierte Datentypen Klassen Graphen und Bäume Bibliotheken 5 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Übersicht Graph Kategorisierung von Graphen Graphen als Datenstruktur Adjazenzmatrix Inzidenzmatrix Adjazenzliste Baum Heap Implementierung von Bäumen 6 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 3
4 Graph Definition (Graphentheorie) Ein Graph G ist ein geordnetes Paar zweier Mengen: G = (V, E) Dabei bezeichnet V die Menge der im Graph enthaltenen Knoten (Vertex) und E die Menge der Kanten (Edge) des Graphen. Knoten Anschaulich ist ein Graph ein Gebilde aus Knoten (auch Ecken oder Punkte), die durch Kanten verbunden sein können. Kante Achtung: verschiedene Bilder können denselben Graphen darstellen. 7 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Kategorisierung von Graphen ungerichtete Graphen ohne Mehrfachkanten: E ist eine Teilmenge aller 2-elementigen Teilmengen von V schlicht oder einfach gerichtete Graphen ohne Mehrfachkanten: E ist eine Teilmenge des kartesischen Produktes V x V e Startknoten von e Digraph (Directed Graph). Endknoten von e 8 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 4
5 Kategorisierung von Graphen (Eigenschaften von E) ungerichteten Graphen mit Mehrfachkanten: E ist eine Multimenge [Elemente können mehrfach vorkommen] über der Menge aller 2-elementigen Teilmengen von V gerichteten Graphen mit Mehrfachkanten: E ist eine Multimenge über dem kartesischen Produkt V x V (Multigraph) (Multigraph) Hypergraphen eine Teilmenge der Potenzmenge von V. 9 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Eigenschaften von Graphen Hat eine Kante e in gerichteten Graphen die Form (v, v), so spricht man von einer Schleife (Zyklus). Ist jede Kante eines gerichteten Graphen G Element einer ungerichteten Kante von G, so nennt man G auch symmetrisch. = 10 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 5
6 Graphen als Datenstruktur Ein Graph als Datentyp sollte mindestens die folgenden Operationen haben Einfügen (Kante, Knoten) Löschen (Kante, Knoten) Finden eines Objekts (Kante, Knoten). Die bekanntesten Repräsentation von Graphen im Computer sind die Adjazenzmatrix (Nachbarschaftsmatrix) die Adjazenzliste (Nachbarschaftsliste) die Inzidenzmatrix (Knoten-Kanten-Matrix, seltener genutzt) 11 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Adjazenzmatrix Ein Graph mit n Knoten kann durch eine n n-matrix repräsentiert werden. Dazu nummeriert man die Knoten von 1 bis n durch und trägt in die Matrix die Beziehungen der Knoten zueinander ein Hypergraphen lassen sich nicht durch eine Adjazenzmatrix darstellen. 12 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 6
7 Adjazenzliste Die Adjazenzliste wird in ihrer einfachsten Form durch eine einfach verkettete Liste aller Knoten des Graphen dargestellt, wobei jeder Knoten eine Liste aller seiner Nachbarn (in ungerichteten Graphen) bzw. Nachfolger in gerichteten Graphen besitzt. Vielfachheiten der Kanten Knotengewichte, und Kantengewichte werden meist in Attributen der einzelnen Elemente gespeichert. 13 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Adjazenzliste (2) In der Praxis verwendet man daher meist diese Form der Repräsentation. aufwändiger zu implementieren und zu verwalten, bieten aber eine Reihe von Vorteilen gegenüber Adjazenzmatrizen. verbrauchen nur linear viel Speicherplatz, was insbesondere bei dünnen Graphen (also Graphen mit wenig Kanten) von Vorteil ist, während die Adjazenzmatrix quadratischen Platzbedarf bezüglich der Anzahl Knoten besitzt (dafür aber kompakter bei dichten Graphen, also Graphen mit vielen Kanten ist). Zum anderen lassen sich viele graphentheoretische Probleme nur mit Adjazenzlisten in linearer Zeit lösen. 14 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 7
8 Inzidenzmatrix (seltener genutzt) Ein Graph mit n Knoten und m Kanten kann auch durch eine n m- Matrix repräsentiert werden. Dazu nummeriert man die Knoten von 1 bis n und die Kanten von 1 bis m durch und trägt in die Matrix die Beziehungen der Knoten zu den Kanten ein. Jede Spalte der Inzidenzmatrix enthält genau zwei von Null verschiedene Einträge. In ungerichteten Graphen zweimal die 1 und in gerichteten Graphen einmal die 1 (Endknoten) und einmal die -1 (Startknoten). 15 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Baum Als Wald bezeichnet man in der Graphentheorie einen ungerichteten Graphen ohne Kreis Zyhlus). Ist dieser zusammenhängend, so spricht man von einem (ungerichteten) Baum. Die Zusammenhangskomponenten eines Waldes stellen in diesem Sinne für sich einen Baum dar, so dass ein Wald aus einem oder mehreren Bäumen besteht. Jeder ungerichtete Baum ist also auch ein Wald. Betrachtungen über Wälder lassen sich damit auch auf ungerichtete Bäume übertragen. Umgekehrt sind aber auch Betrachtungen über ungerichtete Bäume häufig leicht auf Wälder übertragbar. 16 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 8
9 Gewurzelte Bäume Neben ungerichteten Bäumen betrachtetet man auch gerichtete Bäume, die häufig auch als gewurzelte Bäume bezeichnet werden und sich weiter in In-Trees und Out-Trees unterscheiden lassen. Es gibt einen ausgezeichneten Knoten, den man Wurzel nennt und für den die Eigenschaft gilt, dass alle Kanten von diesem wegzeigen (Out-Tree) oder zu diesem hinzeigen (In-Tree). 17 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Eigenschaften die lineare Struktur der Liste wird aufgebrochen. Der maximale Ausgangsgrad wird als Ordnung eines Out-Trees bezeichnet alle Knoten mit Ausgangsgrad 0 bezeichnet man als Blätter. alle Knoten, die kein Blatt sind, als innere Knoten. (Manchmal schließt man die Wurzel dabei aber aus.) Als Tiefe einen Knotens bezeichnet man die Länge des Pfades von der Wurzel zu ihm und als Höhe des Out-Trees die Länge eines längsten Pfades. 18 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 9
10 Eigenschaften Für einen von der Wurzel verschiedenen Knoten v bezeichnet man den Knoten, durch den er mit einer eingehenden Kante verbunden ist als Vater, Vaterknoten, Elternknoten oder Vorgänger von v. Als Vorfahren von v bezeichnet man alle Knoten, die entweder Vater von v oder Vorgänger des Vaters sind. Umgekehrt bezeichnet man alle Knoten, die von einem beliebigen Knoten v aus durch eine ausgehende Kante verbunden sind als Kinder, Kinderknoten, Sohn oder Nachfolger von v. Als Nachfahren von v bezeichnet man Kinder von v oder deren Nachfahren. Als Geschwister oder Geschwisterknoten werden in einem Out-Tree Knoten bezeichnet, die den gleichen Vater besitzen. 19 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Spezielle Bäume Bei Binärbäumen ist die Anzahl der Kinder höchstens zwei. In balancierten Bäumen gilt zusätzlich, dass sich die Höhen des linken und rechten Teilbaums an jedem Knoten höchstens um eins unterscheiden. Bei Suchbäumen sind die Elemente in der Baumstruktur geordnet abgelegt, so dass man schnell Elemente im Baum finden kann. 20 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 10
11 Partiell geordneter Baum Ein partiell geordneter Baum T ist ein Baum, dessen Knoten markiert sind dessen Markierungen aus einem geordneten Wertebereich stammen in dem für jeden Teilbaum T' mit der Wurzel x gilt: Alle Knoten aus T' sind größer markiert als x oder gleich x. Intuitiv bedeutet dies: Die Wurzel jedes Teilbaumes stellt ein Minimum für diesen Teilbaum dar. Die Werte des Teilbaumes nehmen in Richtung der Blätter zu oder bleiben gleich. 21 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Geordnete, strikte und vollständige Binärbäume Ein Binärbaum heißt geordnet, wenn jeder innere Knoten ein linkes und eventuell zusätzlich ein rechtes Kind besitzt (und nicht etwa nur ein rechtes Kind). Man bezeichnet ihn als voll oder strikt, wenn jeder Knoten entweder Blatt ist (also kein Kind besitzt), oder aber zwei (also sowohl ein linkes wie ein rechtes) Kinder besitzt. Man bezeichnet ihn als vollständig, wenn alle Blätter die gleiche Tiefe besitzen. Ein vollständiger Binärbaum der Höhe n, n man häufig auch als B n bezeichnet, hat genau 2n+1-1 Knoten, 2i Knoten in Tiefe i, insbesondere also 2n-1 innere Knoten, 2n Blätter mit Höhe n die Länge des Pfades zu einem tiefsten Knoten bezeichnet wird. 22 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 11
12 Eine wichtige Operation auf Bäumen: Linearisierung oder Traversierung Es gibt verschiedene Möglichkeiten, die Knoten von Binärbäumen zu durchlaufen. Diesen Prozess bezeichnet man auch als Linearisierung oder Traversierung. Man unterscheidet hier in: pre-order (W L R): wobei zuerst die Wurzel (W) betrachtet wird und anschließend zuerst der linke (L), dann der rechte (R) Teilbaum durchlaufen wird, in-order (L W R): wobei zuerst der linke (L) Teilbaum durchlaufen wird, dann die Wurzel (W) betrachtet wird und anschließend der rechte (R) Teilbaum durchlaufen wird und 23 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Eine wichtige Operation auf Bäumen: Linearisierung oder Traversierung post-order (L R W): wobei zuerst der linke (L), dann der rechte (R) Teilbaum durchlaufen wird und anschließend die Wurzel (W) betrachtet wird. level-order Beginnend bei der Wurzel, werden die Ebenen von links nach rechts durchlaufen. 24 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 12
13 Rekursive Implementierungen Funktion Preorder (Baum) W <- Baum.Wurzel //W:= Wurzel des übergebenen Baumes If Baum.Links <> NULL //Existiert ein linker Unterbaum? L <- Preorder(Baum.Links) // dann: L:= Preorder von linkem Unterbaum If Baum.Rechts <> NULL //Existiert ein rechter Unterbaum? R <- Preorder(Baum.Rechts) // dann: R:= Preorder von rechtem Unterbaum Return W L R //Rückgabe: Verkettung aus W, L und R Funktion Inorder (Baum) W <- Baum.Wurzel /W:= Wurzel des übergebenen Baumes If Baum.Links <> NULL //Existiert ein linker Unterbaum? L <- Inorder(Baum.Links) // dann: L:= Inorder von linkem Unterbaum If Baum.Rechts <> NULL //Existiert ein rechter Unterbaum? R <- Inorder(Baum.Rechts) // dann: R:= Inorder von rechtem Unterbaum Return L W R //Rückgabe: Verkettung aus L, W und R Funktion Postorder (Baum) W <- Baum.Wurzel //W:= Wurzel des übergebenen Baumes If Baum.Links <> NULL //Existiert ein linker Unterbaum? L <- Postorder(Baum.Links) // dann: L:= Postorder von linkem Unterbaum If Baum.Rechts <> NULL //Existiert ein rechter Unterbaum? R <- Postorder(Baum.Rechts) // dann: R:= Postorder von rechtem Unterbaum Return L R W //Rückgabe: Verkettung aus L, R und W 25 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Man unterscheidet hier weiter in binäre Suchbäume mit AVL-Bäumen als balancierte Version und B-Bäumen sowie diversen Varianten, den B*-Bäumen (die Blattknoten in einer Liste miteinander verkettet). (Spezielle Suchbäume in Datenbanksystemen Achtung: B steht nicht für binär!) In B*-Bäumen wird neben der effizienten Suche einzelner Datenelemente auch das schnelle sequenzielle Durchlaufen aller Datenelemente unterstützt). Eine detaillierte Diskussion würde hier zu weit führen, aber Sie werden in Ihrem Studium noch viel davon hören, versprochen ;-) 26 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 13
14 Bäume als Datenstruktur Gewurzelte Bäume, insbesondere Out-Trees, Bei beschränkter Ordnung können diese so implementiert werden, dass jeder Knoten einen festen Satz an Variablen oder ein Array für die Referenzen auf seine Kinder enthält. Ein Baum unbeschränkter Ordnung kann implementiert werden, indem man statt Arrays dynamische Listen verwendet (z. B. in Python). Häufig besitzen die Knoten auch eine Referenz auf ihren Elternknoten (back pointer). 27 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Bäume als Datenstruktur (2) In Programmiersprachen ohne dynamische Listen hat sich auch ein Verfahren bewährt, bei dem ein allgemeiner Baum durch einen Binärbaum implementiert wird rote Linie zeigt dabei den realisierten allgemeinen Baum Pfeile zeigen die tatsächlich implementierte Zeigerstrukturen repräsentieren. Prinzip: linke Zeiger zeigt auf den am weitesten links stehenden Sohn rechte Zeiger auf den rechten Bruder verweist. 28 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 14
15 Heap Der Heap (Haufen, Halde) vereint die Datenstruktur eines Baums mit den Operationen einer Vorrangwarteschlange. Je nach Reihenfolge in der Vorrangwarteschlange spricht man von Min-Heap oder einem Max-Heap. Häufig hat der Heap neben den minimal nötigen Operationen wie insert, remove und extractmin (-Max)auch noch weitere Operationen wie merge oder changekey. In einem Heap können Objekte oder Elemente abgelegt und aus diesem wieder entnommen werden. Sie dienen damit der Speicherung von Mengen. Den Elementen ist dabei ein Schlüssel zugeordnet, der die Priorität der Elemente festlegt. Häufig werden auch die Elemente selbst als Schlüssel verwendet. 29 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Übersicht... zur Implementierung gerichtet azyklisch Graph Baum tree Implementierung mit einer dynamischen Liste in Python einfach und effizient möglich Übung M-Way Suchbaum search tree Halde heap Wir betrachten eine Variante zur Übung... Programmierung einer Klasse! binary tree quadtree octtree B-Tree 30 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 15
16 Vorab: Zusammenfassung der Namenskonventionen (1) (1) Namen, die mit zwei Unterstrichen beginnen und enden (zum Beispiel init ), haben eine besondere Bedeutung für den Interpreter: Klassen fangen eingebaute Operationen ab und implementieren dieses auf ihre Art (Überladen die Methode), indem sie Methoden mit zwei Unterstrichen beginnen und enden lassen, die sie von ihrer Oberklasse geerbt haben. (2) Namen, die mit einem Unterstrich beginnen, (z.b. _A) und denen auf oberster Ebene eines Moduls zugewiesen wird, werden bei from module import * nicht sichtbar. (Pseudo private Attribute) (3) Namen in einer class-anweisung, die mit zwei Unterstrichen beginnen, aber nicht damit enden, z.b. A, wird der Name der Klasse vorangestellt (Pseudo private Attribute) 31 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Zusammenfassung der Namenskonventionen (2) (4) Klassennamen beginnen normalerweise mit einem großen Buchstaben, z.b. MeineKlasse (Camel Casing) (5) Der erste (am weitesten links stehende) Parameter der Methodendefinition innerhalb von Klassen wird normalerweise self genannt. (6) Qualifizierte Namen werden als Attribute bezeichnet und unterliegen den Regeln für Objekt-Namensräumen. Zuweisungen in bestimmten lexikalischen Geltungsbereichen (beziehen sich auf die Schachtelung im Quellcode eines Programmes) initialisieren Objekt-Namensräume (Module, Klassen). 32 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 16
17 Ein Beispiel für die (unvollständige) Implementierung eines binären Suchbaums class Node: def init (self, data=none): self.data = data self.left = None self.right = None def str (self): return "[%s, %i, %i]" % (str(self.data), id(self.left), id(self.right)) 33 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Implementierung eines binären Suchbaums (2) class BTree: def init (self): self.root = None def _prchilds(self, node): if node!= None: return "(%s; %s; %s)" (self._prchilds(node.left), node, self._prchilds(node.right)) else: return "nil" 34 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 17
18 Implementierung eines binären Suchbaums (3) def add(self, data): if self.root == None: self.root = Node(data) else: curnode = self.root lastnode = self.root while curnode!= None: lastnode = curnode if data < curnode.data: curnode = curnode.left direction = -1 # links einfügen else: curnode = curnode.right direction = +1 # rechts einfügen if direction == -1: lastnode.left = Node(data) else: lastnode.right = Node(data) 35 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Testen unserer Implementierung in der Python Shell >>> a=btree() >>> a.add(4) >>> a.add(2) >>> a.add(7) >>> a < main.btree instance at 0x00C26828> >>> a. str () '((nil; [2, , ]; nil); [4, , ]; (nil; [7, , ]; nil))' 36 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 18
19 Zusammenfassung Graphen, Bäume, Heaps ganz wichtige Datenstrukturen Sie wissen, was das ist und wissen, wie es zu implementieren ist es fehlen aber noch viele weitergehende Aspekte,... Datenstrukturen im 2. Semester,... Programmieren erfordert Disziplin, Ausdauer, abstraktes Denkvermögen, Kreativität und hohe Lernbereitschaft! 37 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Was haben wir (noch) nicht gemacht? Algorithmenkonstruktion... macht Prof. Drobnik Interaktive Programme mit graphischer Oberfläche... das tut mir etwas weh! ein Teil des Skripts fehlt noch V2... wird bald nachgeliefert und auch eine Überarbeitung (insbesondere Fehlerkorrektur) Sie erkennen das an einer Versionsnummer (-X) auf dem Server Möglichkeiten sich Selbsttest (Multiple-Choice Fragen, demnächst!) 38 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 19
20 Fragen und (hoffentlich) Antworten 39 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker Ausblick Der Abschluss des Teils 1 (für die Klausur immerhin schon 45%): jeweils nur ausgewählte Elemente: Module, Pakete Ein- / Ausgabe exceptions event-based programming und eine 1. Evaluierung Danke für Ihre Aufmerksamkeit! 40 Programmieren 1 Teil 1 V10 Prof. Dr. Detlef Krömker 20
Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V9/11
Modul: Programmierung B-PRG Grundlagen der Programmierung Teil V9/ Graphen und Bäume Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (2) Rückblick:
MehrModul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V10. Übersicht: Wichtige Datenstrukturen. Unser heutiges Lernziel
Modul: Programmierung B-PRG Grundlagen der Programmierung Teil V0 Graphen, Bäume, Halden Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik () Übersicht:
MehrGraphen und Bäume. Inhalt. Vorlesung
Vorlesung 8 Graphen und Bäume Inhalt Graphen. Kategorisierung von Graphen. Graphen als Datenstruktur 6.. Die Adjazenzmatrix 7.. Adjazenzlisten 8.. Inzidenzmatrix 9 Bäume und Wälder 9. Binärbäume. Bäume
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
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
Mehr3. Die Datenstruktur Graph
3. Die Datenstruktur Graph 3.1 Einleitung: Das Königsberger Brückenproblem Das Königsberger Brückenproblem ist eine mathematische Fragestellung des frühen 18. Jahrhunderts, die anhand von sieben Brücken
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. 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
MehrProgrammierkurs Python
Programmierkurs Python Stefan Thater Michaela Regneri 2010-0-29 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen für Graphen Tiefen- und Breitensuche Nächste Woche: mehr Algorithmen 2 Was
MehrProgrammierkurs Python II
Programmierkurs Python II Stefan Thater & Michaela Regneri FR.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 011 Heute Ein wenig Graph-Theorie (in aller Kürze) Datenstrukturen
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
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
MehrFragenkatalog 1. Kurseinheit
katalog 1. Kurseinheit 1. Wie sind Algorithmen und Datenstrukturen untrennbar miteinander verknüpft? 2. Worin besteht das Ziel einer Beschreibung auf algorithmischer Ebene? 3. Welche Kriterien gibt es
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda
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
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
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
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
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
MehrDigraphen, DAGs und Wurzelbäume
Digraphen (gerichtete Graphen) Slide 1 Digraphen, DAGs und Wurzelbäume Digraphen (gerichtete Graphen) Slide 2 Eingangs- und Ausgangsgrad Bei einer gerichteten Kante e = (u,v) E heißt u Startknoten von
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
MehrGraphen. Definitionen
Graphen Graphen werden häufig als Modell für das Lösen eines Problems aus der Praxis verwendet, wie wir im Kapitel 1 gesehen haben. Der Schweizer Mathematiker Euler hat als erster Graphen verwendet, um
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
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
MehrChristian Rieck, Arne Schmidt
Institute of Operating Systems and Computer Networks Algorithms Group Algorithmen und Datenstrukturen Wintersemester 207/208 Übung#5, 2.2.207 Christian Rieck, Arne Schmidt Bäume Satz Jeder gerichtete Baum
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 13 (8.6.2016) Graphenalgorithmen I Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
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
MehrVerkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
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
MehrEinführung in die Informatik I
Einführung in die Informatik I Graphen und Bäume Prof. Dr. Nikolaus Wulff Weitere Datentypen Als wichtige abstrakte Datentypen (ADT) kennen wir bis lang die Liste, den Stapel und die Warteschlange. Diese
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
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
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 17. November 2017 17. November 2017 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume
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,
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
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
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
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
MehrAlgorithmen und Datenstrukturen 2-1. Seminar -
Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8
MehrInformatik II, SS 2016
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 12 (4.6.2018) Graphenalgorithmen I Yannic Maus Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
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
Mehr{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen
4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,
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
MehrKeller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14
Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden
Mehr(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
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
MehrGraphen und Bäume. A.1 Graphen
Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt
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,
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,
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
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:
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
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
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
MehrKap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS
Kap. 5: Graphen Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 17. VO DAP2 SS 2009 23. Juni 2008 1 Motivation Warum soll ich heute hier bleiben? Graphen sind wichtig und
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
MehrAlgorithmen und Datenstrukturen 13
19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum
MehrVorlesung PRG-1, WS 06/07 6. Übung
Fachbereich Informatik & Mathematik (12) Professur Graphische Datenverarbeitung Prof. Dr. Detlef Krömker Jörg Demmer Ashraf Abu Baker Robert-Mayer-Str. 10 60325 Frankfurt am Main Tel.: +49 (0)69 798-24610
MehrGraphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke
Graphen Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2 Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur,
MehrRelationen und DAGs, starker Zusammenhang
Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind
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:
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
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrDatenstrukturen und Algorithmen 2. Klausur SS 2001
UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................
MehrInformatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum
lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum
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
MehrDatenstrukturen: Mathematische Grundlagen. 26. Juli / 27
Datenstrukturen: Mathematische Grundlagen 26. Juli 2015 1 / 27 Asymptotik Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle
MehrProgrammiertechnik II
Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind
MehrKlausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
MehrGraphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1
Graphen 27 Jiri Spale, Algorithmen und Datenstrukturen - Graphen Motivation Einsatz: Berechnung von Entfernungen Auffinden von Zyklen in Beziehungen Ermittlung von Verbindungen Zeitmanagement Konzept:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 17 (8.7.2014) Minimale Spannbäume II Union Find, Prioritätswarteschlangen Algorithmen und Komplexität Minimaler Spannbaum Gegeben: Zus. hängender,
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
MehrADS: Algorithmen und Datenstrukturen
ADS: Algorithmen und Datenstrukturen Teil X Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 13.
MehrProgrammiertechnik II
Graph-Algorithmen Anwendungsgebiete "Verbundene Dinge" oft Teilproblem/Abstraktion einer Aufgabenstellung Karten: Wie ist der kürzeste Weg von Sanssouci nach Kunnersdorf? Hypertext: Welche Seiten sind
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:
MehrAlgorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik
Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 02. Mai 2017 [Letzte Aktualisierung: 10/07/2018,
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
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)
MehrProgrammierkurs Python II
Programmierkurs Python II Michaela Regneri & Stefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 2011 Prüfungsleistungen Klausur am Semesterende -
Mehrclass PrintNode(object): def init ( self, param ):... def visit( self, treenode ): print treenode.getitem()
aumtraversierungen Allg.: häufig müssen alle Knoten eines aumes besucht werden, um bestimmte Operationen auf ihnen durchführen zu können Operation in Visitor-Klasse verpacken, z.. class PrintNode(object):
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
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik - SS 0 Bäume Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
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
MehrLösungsvorschläge zur Hauptklausur Datenstrukturen
Lösungsvorschläge zur Hauptklausur 9 9 166211663 Datenstrukturen 9. August 2003 Seite 2 Lösungsvorschlage zur Klausur vom 9.08.2003 Kurs 166211663,,Datenstrukturen" Aufgabe 1 Bei jedem rekursiven Aufruf
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
Mehr5. Vorrangwarteschlangen - Priority Queues
5. Vorrangwarteschlangen - Priority Queues Priority Queues unterstützen die Operationen Insert(), Delete(), ExtractMin(), FindMin(), DecreaseKey(), Merge(). Priority Queues per se sind nicht für IsElement()-Anfragen,
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
MehrKlasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE)
4.4 Quadtrees Überblick Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE) Verwaltung von Punkten, Kurven, Flächen usw., häufig
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.
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.
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
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
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
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
Mehr