1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel

Slides:



Advertisements
Ähnliche Präsentationen
Sortieren I - Bubblesort -
Advertisements

PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapitel 5. Stacks und Queues
Synonyme: Stapel, Keller, LIFO-Liste usw.
der Universität Oldenburg
Gliederung Motivation / Grundlagen Sortierverfahren
Java: Dynamische Datentypen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (06 - Anwendungen von Stapeln und Schlangen) Prof. Th. Ottmann.
Anwendungen von Stapeln und Schlangen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

6 Folgen (Teil II - Datenstrukturen und Algorithmen)
Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Informatikunterricht mit Java
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
Kapitel 2: Datenstrukturen
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursion mit Listen: Quicksort
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
1. Die rekursive Datenstruktur Liste 1.1 Warteschlange (Queue)
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
1.2 Trennung von Struktur und Inhalt
1.5 Das Entwurfsmuster Kompositum
1.6 Die Datenstruktur Stapel Ein Stapel (Stack) ist ein Sonderfall einer Liste. Die Elemente werden nach dem Prinzip LIFO (Last In First Out) angefügt.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Algorithmen und Datenstrukturen Übungsmodul 8
EPROG Tutorium #5 Philipp Effenberger
se_5_liste_stack_etc.ppt1 Softwareengineering Listenstrukturen und ähnliches Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Dr. Wolfram Amme, Generisches Programmieren, Informatik II, FSU Jena, SS Generisches Programmieren.
Eine Vokabelschlange. Schlangen in Anwendungsprogrammen Die Piktogramme von Personen, mit denen wir ursprünglich die Datenstruktur Schlange eingeführt.
Objektorientiertes Modellieren und Programmieren mit Java
Anforderungen an die neue Datenstruktur
Praktische Informatik 1
Schlange und Stapel.
Zwei Denkansätze zur Klasse Schlange
Der Abschluss einer Schlange
Allgemeine Befehle für die allgemeine Liste
Gruppe 2 Carina Fuss Informatik II – Übung 4 Gruppe 2 Carina Fuss Carina Fuss
6. Wiederholungen und Zählschleifen
Raphael Fischer Informatik II - Übung 03 Raphael Fischer
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Raphael Fischer Informatik II - Übung 05 Raphael Fischer
7. Arrays Gelegentlich braucht man für ein Programm mehrere Attribute desselben Datentyps oder derselben Klasse. Beispiel: In der Highscore-Liste eines.
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
2. Vererbung und Kapselung
1. Die rekursive Datenstruktur Liste 1
2. Die rekursive Datenstruktur Baum 2.2 Suchen und Einfügen
Datenstrukturen und Softwareentwicklung
Übersicht und Benutzung von Sphinx
9. Vererbung und Polymorphie
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
2.4 Durchlaufen von Bäumen
1. Die rekursive Datenstruktur Liste 1
Informatik II – Übung 4 Gruppe 3
2. Die rekursive Datenstruktur Baum 2.3 Baum und Kompositum
 Präsentation transkript:

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 werden können. Dies bedeutet u.a., dass das Element, das als letztes Element in den Stack eingefügt wurde, als erstes Element wieder vom Stack entfernt werden muss. Man spricht deshalb oft vom LIFO-Prinzip (Last In First Out). Dementsprechend kann das als erstes in den Stack eingefügte Element erst als letztes Element wieder vom Stack entfernt werden.  Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

Die Operation zum Hinzufügen eines Elements heißt üblicherweise push, Ein Stack kann bildlich sehr gut mit einem Stapel von Kisten verglichen werden. Die Operation zum Hinzufügen eines Elements heißt üblicherweise push, die Operation zum Entfernen eines Stackelements pop. Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

Methode zum Einfügen (push) Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

Methode zum Entfernen (pop) Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

In Java ist die Klasse Stack als Unterklasse von Vector implementiert. Informiere dich in der offiziellen Java-Dokumentation (Java API) über diese Klassen. All Methods Modifier and Type Method Description boolean empty() Tests if this stack is empty. E peek() Looks at the object at the top of this stack without removing it from the stack. pop() Removes the object at the top of this stack and returns that object as the value of this function. push​(E item) Pushes an item onto the top of this stack. int search​(Object o) Returns the 1-based position where an object is on this stack. Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

Übung 1 Öffne das BlueJ-Projekt Java_Liste_Queue_Stack In den Klassen wird mithilfe der offiziellen Javaklassen jeweils eine Liste, eine Warteschlange (Queue) und ein Stapel (Stack) implementiert. Untersuche den Quelltext und führe jeweils die Methode teste() aus. Experimentiere mit den Methoden. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel

Umbau der Datenstruktur Liste (vgl. nächste Folie) Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

Ausgehend von unserer Datenstruktur Liste können wir einen Stapel implementieren, indem wir in Liste die nicht benötigten Methoden einfach löschen.  Eleganter schreibt man jedoch eine Klasse Stapel als Unterklasse von Liste. Die nicht benötigten Methoden (hintenEinfuegen ( ) , einfuegenVor ( ), sortiertEinfuegen ( ) , endeEntfernen ( ), knotenEntfernen ( ) ) werden dadurch allerdings ebenfalls von Liste geerbt. Deshalb muss man sie in Stapel mit leeren Methodenrümpfen überschreiben. (Im Diagramm farbig gekennzeichnet)  Informatik 11 - 1. Die rekursive Datenstruktur Liste – 1.6 Die Datenstruktur Stapel

Übung 2 Öffne aus dem Kapitel 1.5 das BlueJ-Projekt liste_abschluss_lsg_alle_Methoden und ändere es gemäß der Beschreibung aus der vorherigen Folie ab. Teste das Projekt ausführlich. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel

Übung 3 Im BlueJ-Projekt stapel_kiste wird die Lagerung von Kisten in einem Lager implementiert. Klassendiagramm: nächste Folie Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel

Übung 3 Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel

Übung 3 a) Implementiere in der Klasse Stapel die Methoden istLeer() und gibOben() istLeer() gibt an, ob der Stapel leer ist. gibOben() liefert den Inhalt des Anfangs zurück ohne ihn vom Stapel zu entfernen. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel

Übung 3 b) Die Klasse Lager verwaltet vier Stapel: Der Stapel s0 darf beliebig aufgefüllt werden. Vom Stapel s0 werden durch einmaliges Aufrufen der Methode lagerAuffuellen( ) die Kisten auf die Stapel s1, s2 und s3 verteilt. Die Gesamtmasse der Stapel s1, s2 und s3 darf dabei maximal 100 sein. Zuerst soll s1 so weit wie möglich aufgefüllt werden, dann s2 und s3. Ist s3 voll und der Stapel s0 noch nicht leer, soll eine Meldung ("Lager ist voll." o.ä.) ausgegeben werden. Die Methode umstapeln(von, ziel) entfernt das oberste Element des Stapels von und legt es auf den Stapel ziel. Sie dient lediglich dazu, die Methode lagerAuffuellen ( ) übersichtlich zu gestalten. Implementiere die Klasse Lager. In der Klasse Test kannst du mit der Methode ausfuehren() deine Methoden testen. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel

Übung 3 c)* Implementiere die Methode lagerAuffuellen2( ), in der die Reihenfolge des Auffüllens geändert ist: Zuerst wird ein Element auf s1 abgelegt, das nächste auf s2, das nächste auf s3, das nächste auf s1, usw. Informatik 11 - 1. Die rekursive Datenstruktur Liste - 1.6 Die Datenstruktur Stapel