8 Baum in perfekter Komposition
|
|
|
- Johann Kappel
- vor 9 Jahren
- Abrufe
Transkript
1 8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde durch den Einsatz des Entwurfsmusters Kompositum die Struktur der Klassenbeziehungen verändert und eine optimierte Implementierung erreicht. 4 Wie funktioniert das Software-Entwurfsmuster bei der einfach verketteten Liste? Welche Sonderfälle vereinfacht es? Wie kann das Entwurfsmuster Kompositum bei Baumstrukturen angewendet werden? Welche Klassen benötigt man zur Umsetzung der Datenstruktur Binärbaum mithilfe des Entwurfsmusters Kompositum? In welchen Beziehungen stehen die Klassen zueinander? Jeder Knoten hat die Referenzattribute linkernachfolger und rechternachfolger. Gibt es keinen Nachfolger, so hat das Referenzattribut den Wert null. In Abbildung 1 wurden, im Gegensatz zu den vereinfachten Darstellungen im letzten Kapitel, bei jedem Knoten beide Pfeile als Symbol für die Referenzattribute eingetragen. 1 Darstellung des Binärbaums mit Abschlusssymbolen Wie im Kapitel 4 ist auch hier der Ansatz möglich, dass man anstelle von null als Wert der Referenzattribute für den linken und rechten Nachfolger eine Referenz auf ein Objekt der Klasse ABSCHLUSS setzt. Objekte der Klasse ABSCHLUSS haben weder Referenzattribute auf Nachfolger noch auf ein Datenelement, bieten jedoch die gleiche Schnittstelle in Form von n an wie die Klasse KNOTEN. In Abbildung 2 sind die Objekte der Klasse ABSCHLUSS eingefügt. 2 Baum mit Objekten der Klasse ABSCHLUSS (blaue Einfärbung) Objekte der Klassen KNOTEN und ABSCHLUSS müssen nach außen die gleichen n anbieten, somit die gleiche Schnittstelle realisieren. Im Vergleich zur Liste wird diese jedoch nicht LISTENELEMENT, sondern BAUMELEMENT genannt. Sowohl jeder Knoten als auch jedes Abschluss-Objekt ist ein Baumelement. Deshalb wird die Schnittstelle durch 75
2 II Die rekursive Datenstruktur Baum eine abstrakte Oberklasse realisiert. Das Klassendiagramm in Abbildung 3 gibt eine Übersicht über die beteiligten Klassen und deren Beziehungen. Das Entwurfsmuster Kompositum ist durch eine blaue Linienfarbe hervorgehoben. 3 Klassendiagramm der Binärbaumstruktur mit Kompositum BAUMELEMENT {abstrakt} BAUMELEMENT() ABSCHLUSS ABSCHLUSS() BINBAUM BAUMELELEMNT wurzel BINBAUM() KNOTEN DATENELEMENT daten BAUMELEMENT linkernachfolger BAUMELEMENT rechternachfolger KNOTEN(DATENELEMENT) KNOTEN(DATENELEMENT, KNOTEN, KNOTEN) Wie unterscheiden sich die Beziehungen des Klassendiagramms in Abbildung 3 von denen im Klassendiagramm, das in Abbildung 3 von Kapitel 4 die Datenstruktur Liste mithilfe des Entwurfsmusters Kompositum umsetzt? Welche Änderungen ergeben sich bei den Attributen der Klassen KNOTEN, BINBAUM und DATENELEMENT durch die Umstellung auf das Entwurfsmuster Kompositum? Implementierung des Entwurfsmusters Kompositum Attribute und Konstruktoren Im ersten Schritt der Umsetzung werden nur die Attribute und Konstruktoren betrachtet. Die Klasse BAUMELEMENT hat keine Attribute. Somit müssen im Konstruktor keine Anweisungen ausgeführt werden, der Rumpf ist leer. Die Klasse ABSCHLUSS hat keine Attribute. Wiederum müssen im Konstruktor keine Anweisungen ausgeführt werden. Im Sinne eines guten Programmierstils ruft man dennoch den Konstruktor der Oberklasse auf. Die Klasse KNOTEN hat wie bisher Referenzen auf den rechten und linken Nachfolger und ein Datenelement. Die Nachfolger sind entsprechend dem Klassendiagramm aus Abbildung 3 vom Datentyp BAUMELEMENT. Der Konstruktor hat bisher beim Aufruf die eingegebene Referenz dem Referenzattribut daten zugewiesen und die Werte der beiden Nachfolgerreferenzen auf null gesetzt. Letzteres muss geändert werden: Man muss zwei Objekte der Klasse ABSCHLUSS erzeugen und deren Referenzen den Referenzattributen linkernachfolger und rechternachfolger zuordnen (Abbildung 4). Die Klasse BINBAUM hat wie bisher ein Referenzattribut wurzel. Dieses ist nun vom Typ BAUMELEMENT. Beim Erzeugen eines leeren Baums ist die Wurzel ein Objekt der Klasse ABSCHLUSS (Abbildung 5). 4 Alle beteiligten Objekte beim Erzeugen eines Knotens 5 Alle beteiligten Objekte beim Erzeugen eines Binärbaums 76
3 Suchen Bei der Suchen zeigt sich klar der Vorteil des Entwurfsmusters Kompositum. Alle bedingten Anweisungen, die prüfen, ob es einen Nachfolger gibt oder nicht, werden überflüssig. Dafür sind die Implementierungen der Suchen in den Klassen ABSCHLUSS und KNOTEN unterschiedlich. - Suchen der Klasse KNOTEN: War die Suche bisher erfolglos, so wird bei einem der Nachfolger ein rekursiver Aufruf der vorgenommen. Jeder Knoten hat jetzt immer zwei Nachfolger. - Suchen der Klasse ABSCHLUSS: Die Suche war erfolglos, es wird die leere Referenz zurückgegeben. Folgende Gegenüberstellung zeigt die Änderungen im Detail: vorher (einfacher Binärbaum) Klasse KNOTEN wenn (daten.istschluesselgleich(suchschluessel)) return daten wenn (daten. IstSchluesselGroesserAls(suchSchluessel)) wenn (linkernachfolger!= null) return linkernachfolger. wenn (rechternachfolger!= null) return rechternachfolger. nachher (Binärbaum nach Entwurfsmuster Kompositum) Klasse KNOTEN wenn (daten.istschluesselgleich(suchschluessel)) return daten wenn (daten. IstSchluesselGroesserAls(suchSchluessel)) return linkernachfolger. return rechternachfolger. Klasse ABSCHLUSS 6 Veränderung der Suchen in der Klasse KNOTEN durch die Umstellung auf das Entwurfsmuster Kompositum Die Suchen der Klasse BINBAUM verkürzt sich ebenfalls. Es muss nicht mehr überprüft werden, ob der Baum leer ist, denn ein leerer Baum hat ein Abschluss-Objekt. Dieser gibt mit null die richtige Antwort auf eine Suchanfrage (siehe nächste Seite). 77
4 II Die rekursive Datenstruktur Baum vorher (einfacher Binärbaum) Klasse BINBAUM wenn (wurzel!= null) return wurzel. nachher (Binärbaum nach Entwurfsmuster Kompositum) Klasse BINBAUM return wurzel. 7 Veränderung der Suchen in der Klasse BINBAUM durch die Umstellung auf das Entwurfsmuster Kompositum und Einfügen Ein Einfügen findet beim geordneten Binärbaum immer am Ende eines Astes statt. Dort wird das Abschluss-Objekt ersetzt durch einen neuen Knoten. Er referenziert das einzufügende Datenelement und zwei Objekte der Klasse ABSCHLUSS. Abbildung 8 verdeutlicht dies am Beispiel des naufrufs wurzel.einfuegen(referenz auf Datenelement mit "cake" als Schlüssel). Der Abschluss a1 wird also durch einen neuen Knoten ersetzt, dessen Datenelement den Schlüssel "cake" hat und der zwei neue Abschlüsse referenziert. 8 Beim Einfügen wird ein Abschluss-Objekt (hier a1) durch einen neuen Knoten (hier mit der Beschriftung cake ) mit zwei neuen Abschluss-Objekten (hier a4 und a5) ersetzt. Die Schwierigkeit bei dem in Abbildung 8 dargestellten Einfügevorgang ist, dass das Objekt "call" noch nicht weiß, dass es einen neuen linken Nachfolger erhalten wird, wenn es den Auftrag zum Einfügen an das Objekt a1 weitergibt. Das Objekt a1 erzeugt nun einen neuen Knoten "cake". Da a1 seinen Aufrufer, das Objekt "call", bisher aber nicht kennt, kann es ihn nicht über den neuen Nachfolger informieren. Wie kann der Aufrufer trotz der fehlenden Referenz nach oben die Information über den neuen Nachfolger erhalten? Man löst dieses Problem, indem man die Einfuegen mit einem Rückgabewert vom Typ BAUMELEMENT versieht. Darüber kann jedes Objekt der Klasse ABSCHLUSS (hier das Objekt a1) dem Aufrufer-Objekt (hier der Knoten mit der Beschriftung "call") eine Referenz des von ihm erzeugten Knotens (hier der Knoten "cake") übergeben. Welchen Wert geben Objekte der Klasse KNOTEN beim Aufruf der Einfuegen zurück? 78
5 Objekte der Klasse KNOTEN rufen zwar abhängig davon, ob das eigene Datenelement größer oder kleiner ist als die neuen Daten, die Einfügen des linken oder rechten Nachbarn auf. Danach wird aber in beiden Fällen mit this die Referenz auf sich selbst zurückgegeben, da die Position jedes Knotens innerhalb der Baumstruktur gleich bleibt. Hinweise: - Das Verfahren, eine Information an den Aufrufer einer durch die Einführung eines Rückgabewerts zu übergeben, wurde bereits bei der EinfuegenVor bei Listen und bei der Entfernen bei Bäumen angewandt. - Das Abschluss-Objekt a1 wird nach dem Einfügen (Abbildung 8 rechts) nicht mehr benötigt. In den meisten objektorientierten Programmiersprachen werden nicht mehr referenzierte Objekte von der automatischen Speicherplatzbereinigung gelöscht. 3 7 garbage collection Der Ablauf beim Einfügen des Wortes cake : wurzel.einfuegen("cake") Daten sind gleich? nein Sind eigene Daten größer als die neuen Daten? ja Beauftrage linken Nachfolger mit dem Einfügen. wurzel.linf.einfuegen("cake") Erzeuge einen Knoten mit einem Datenelement "cake". Gib eine Referenz auf den erzeugten Knoten zurück. Setze den Rückgabewert als linken Nachfolger. Gib eine Referenz auf dich selbst zurück. 9 Ablauf des naufrufs wurzel.einfuegen("cake") 79
1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.4 Methoden der Datenstruktur Liste Die Warteschlange (Queue) ist ein Sonderfall der Datenstruktur Liste. Bei der Warteschlange werden Einfügen und Entfernen nach
Bäume als spezielle Graphen
Bäume als spezielle Graphen M. Jakob Gymnasium Pegnitz 29. November 2015 Inhaltsverzeichnis 1 Die rekursive Datenstruktur Baum 2 Geordnete Binärbäume 3 Die Datenstruktrur Graph In diesem Abschnitt 1 Die
Bäume als spezielle Graphen
M. Jakob Gymnasium Pegnitz 9. November 015 Inhaltsverzeichnis Die rekursive Datenstruktur Baum Listen umstrukturieren Deklaration und Initialisierung Deklaration Suchen Einfügen Baum in perfekter Komposition
Listen. M. Jakob. Gymnasium Pegnitz. 20. September Hinführung: Wartenschlangen. Grundprinzip von Listen Rekursion
M. Jakob Gymnasium Pegnitz 20. September 2015 Inhaltsverzeichnis Grundprinzip von Rekursion (10 Std.) Die einfach verkettete Liste als Kompositum (10 Std.) Klasse LISTENELEMENT? Entwurfsmuster Kompositum
Listen. M. Jakob. 20. September Gymnasium Pegnitz
Listen M. Jakob Gymnasium Pegnitz 20. September 2015 Inhaltsverzeichnis 1 Hinführung: Wartenschlangen (6 Std.) 2 Grundprinzip von Listen Rekursion (10 Std.) 3 Die einfach verkettete Liste als Kompositum
Informatik Abitur Bayern 2017 / II - Lösung
Informatik Abitur Bayern 2017 / II - Lösung Autoren: Wolf (1) Wagner (2) Scharnagl (3-5) 1a 5 1b Diese Methode vergleicht den Namen des Interpreten eines jeden Elements der Liste mit dem gegebenen Namen.
Informatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den
7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
I Die rekursive Datenstruktur Liste
I Die rekursive Datenstruktur Liste 1 Einführung der Datenstruktur Schlange Aus dem Vorjahr ist das Feld vertraut als eine Datenstruktur, mit der mehrere gleichartige Objekte verwaltet werden können. In
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
Kapitel 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
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Dokumentation zum AVL-Baum (C++)
Dokumentation zum AVL-Baum (C++) Christian Blaar Monique Argus Januar 2007 Institut für Informatik Martin-Luther-Universität Halle-Wittenberg NODE.H Node.h Node legt die Grundlage für jeden Baum, denn
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
2. Vererbung und Kapselung
2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL
3. 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
Geordnete 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
Von der UML nach C++
22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete
Grundlagen der Informatik
Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
Verkettete 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
Tutoraufgabe 1 (Listen):
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Konstruktor BinaryTree() Nach dem Aufruf des Konstruktors existiert ein leerer Binärbaum.
4.2 Baumstrukturen Die Klasse BinaryTree Mithilfe der Klasse BinaryTree können beliebig viele Inhaltsobjekte in einem Binärbaum verwaltet werden. Ein Objekt der Klasse stellt entweder einen leeren Baum
Teil 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
9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1
9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen
13. 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:
13. 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
Kapitel 10 Mampfi im Labyrinth
Kapitel 10 Mampfi im Labyrinth Seite 1 / 7 Kapitel 10 Mampfi im Labyrinth Lernziele: In diesem Kapitel kommen keine neuen fachlichen Inhalte vor, sondern es werden alte (Beziehung, Objektkommunikation,
10. Datenbank Design 1
1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation
Bä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
Umsetzung einer Klassenkarte in einer Programmiersprache
Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,
Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
Ein erstes "Hello world!" Programm
OOP Henrik Horstmann 14. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Die Benutzer Oberfläche von HOOPLU...2 2.1 Projekte öffnen und speichern...2 2.2 Die Klasse Program
12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
Vorlesung 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
Teil 8: Dynamische Speicherverwaltung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden
Teil 8: Dynamische Speicherverwaltung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 8 Dynamische Speicherverwaltung... 3 8.1
Ü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 (
Verkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
ALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
Algorithmen und Datenstrukturen I AVL-Bäume
Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum
Theoretische 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
Binä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
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
Tutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT
Tutoraufgabe 1 (2 3 4 Bäume):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe ( Bäume): a) Löschen Sie den Wert aus dem folgenden Baum und geben Sie den dabei
Kapitel 14 Das Labyrinth optimieren
Kapitel 14 Das Labyrinth optimieren Seite 1 / Kapitel 14 Das Labyrinth optimieren Lernziele: Erstellen mehrerer Methoden mit gleichem Namen in einer einzigen Klasse Vertiefungen zur Objektkommunikation.
1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
Grundlagen der Objektorientierten Programmierung - Methoden -
Methoden In ihrem formalen Aufbau entsprechen Java-Methoden den Funktionen in C und C++. Eine Methode dient dazu, eine häufig benötigte Folge von Anweisungen unter einem Namen zusammenzufassen und zum
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] [email protected] Gefädelte
Gliederung der Folien
1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung
! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
Java: Implemen'erung von Assozia'onen.
Java: Implemen'erung von Assozia'onen Beispielsoftware: "Schulverwaltung" Wie könnten Sie hier Vererbung sinnvoll einsetzen? Beispielsoftware: "Schulverwaltung" Attribut name:string in Oberklasse auslagern.
ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG
ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG Unter objektorientierter Modellierung versteht man das detailgetreue Darstellen einer zu programmierenden Szene durch Skizzen in UML. UML steht für Unified Modelling
OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume
Algorithmen und Datenstrukturen 22. März 2018 B3. Verkettete Listen und Bäume Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume B3.1 Einführung Marcel Lüthi and Gabriele Röger B3.2 Verkettete
Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. 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
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
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
Praktikum OOP/C++ - Versuch 5
Seite 1 vn 5 Allgemeines Die Elektrifizierung im Autmbilbereich nimmt immer mehr zu. Das heißt, es kmmen immer mehr Elektrmtren und verbraucher zum Einsatz. Es ist ein Prgramm in C++ zu entwickeln, das
Theorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
Kapitel 11 Objektkommunikation mit Antworten
Kapitel 11 Objektkommunikation mit Antworten Seite 1 / 11 Kapitel 11 Objektkommunikation mit Antworten Lernziele: Methoden mit Rückgabewerten, Wiederholung Objektkommunikation 11.1 Grenzen des Labyrinths
Klausur "ADP" SS 2015
PD Dr. J. Reischer 20.7.2015 Klausur "ADP" SS 2015 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die Klausur
1 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;
Einfü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
13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
Semestralklausur Informatik I - Programmierung
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://www-i2.informatik.rwth-aachen.de/lufgi2 Prof. Dr. Jürgen Giesl LuFG
Abiturfach Informatik. Rahmenbedingungen und Aufgabenbeispiele
Abiturfach Informatik Rahmenbedingungen und Aufgabenbeispiele Inhalt Formale Rahmenbedingungen Hinweise zu Lösung und Bewertung Hinweise zu den Inhalten der Prüfung Beispielaufgaben Formale Rahmenbedingungen
Algorithmen 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
Wiederholungsklausur "ADP" WS 2016/2017
PD Dr. J. Reischer 23.02.2017 Wiederholungsklausur "ADP" WS 2016/2017 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes
ADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
