Stacks Referat im Fach Basisinformationstechnologien 14.01.2004 von Venelina Koleva.

Slides:



Advertisements
Ähnliche Präsentationen
Objektorientierte Programmierung
Advertisements

der Universität Oldenburg
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Sortieren I - Bubblesort -
Programmierung II Prof. Dr. Michael Löwe
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
16. Modularität und Abstraktion
Kapitel 5. Stacks und Queues
Synonyme: Stapel, Keller, LIFO-Liste usw.
der Universität Oldenburg
Einführung in die Informationsverarbeitung Stunde II: Datenstrukturen Manfred Thaller, Universität Köln Köln 22. Oktober 2007.
Gliederung Motivation / Grundlagen Sortierverfahren
Java: Dynamische Datentypen
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (06 - Anwendungen von Stapeln und Schlangen) Prof. Th. Ottmann.
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)
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
DVG Klassen und Objekte
Kapitel 2: Datenstrukturen
boolean Datentyp und Operator
Kapitel 1 – Erste Schritte
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Effiziente Algorithmen
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.
Informatik 1 Letzte Übung.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
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.
Dynamische Datentypen
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
EPROG Tutorium #5 Philipp Effenberger
Kapitel 5: Von Datenstrukturen zu Abstrakten Datentypen
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
se_5_liste_stack_etc.ppt1 Softwareengineering Listenstrukturen und ähnliches Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Algorithmen und Datenstrukturen 1 SS 2002
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Stichwortverzeichnis
Heute Mathe, morgen DLR! Dr. Margrit Klitz
Einführung in Web- und Data-Science Grundlagen der Stochastik
Wissenschaftliche Methodik
3 Elektrochemische Wandler
Markus Lips März 2017 ETH-Vorlesung, 6. Sem. Agrarwissenschaft BSc Agrartechnik II.
Entwicklung epistemologischer Überzeugungen
MasterBAV© Die neue Generation BAV
Rehwild die richtige Altersbestimmung
«Wir bereiten uns auf die Deutschlandreise vor»
Einführung in Web- und Data-Science
Betriebliche Gesundheitsförderung 2
Liebe BetrachterInnen,
175 Jahre UZH Krisenkommunikation
Einführung in die Benutzung des Einkaufportals der Eckelmann AG
Non-Standard-Datenbanken
Menger-Schwamm Ausgangsfigur in Stufe 0 ist ein Würfel
Wurzeln und Irrationalität nach U.Wagner, OHG Tuttlingen
Vorlesung Wasserwirtschaft & Hydrologie I
Generative Posenschätzung
Schlange und Stapel.
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
Informatik II – Übung 4 Gruppe 3
 Präsentation transkript:

Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva

1.Definition: Ein Stack ist ein abstrakter Datentyp,bei dem Elemente eingefügt und wieder entfernt werden können. Derartige Datentypen,die als Behälter für Elemente dienen,fasst man oft unter Oberbegriffen wie Container oder Collection zusammen. Unter den Behälter-Datentypen zeichnen sich Stacks dadurch aus,dass immer nur auf dasjenige Element zugegriffen werden kann,das als letztes eingefügt wurde. Dafür gibt es ein Schlagwort: LIFO= Last-In-First-Out

Das englische Wort Stack kann man als Stapel übersetzen.Dabei liegt es nahe an einem Stapel von Tellern,Tabletts oder Säcken zu denken,bei dem man immer nur auf das oberste Objekt zugreifen kann-das ist automatisch das,welches als letztes auf dem Stack abgelegt wurde.

2.Die Datenstruktur Stack: Element: x Stack: s emptyStack

3. Stackoperationen: Der einfachste Stack ist der leere Stack,oder emptyStack.Ob ein Stack leer ist oder nicht kann man mittels eines Prädikats isEmpty testen. Die einfachsten Stackoperationen,die einen Stack s manipulieren sind: push(x,s) – legt ein Element x auf den Stack s top(s)-liefert das zuletzt auf den Stack s gelegte Element pop(s)-entfernt das zuletzt auf den Stack s gelegte Element

Abb.1 top push pop Push(x,s) pop x s pop(s)

Abstrakt lässt sich die Datenstruktur Stack folgendermaßen beschreiben: Datentyp:Stack of Elements Operationen: Konstruktoren: emptyStack: Stack push:Element x Stack Stack Prädikat: isEmpty:Stack Boolean Destruktoren: top::Stack Integer pop::Stack Stack

Gleichungen: isEmpty(emptyStack)=true isEmpty(push(x,s))=false top(push(x,u))=x pop(push(x,u))=u -Jeder Stack lässt sich allein mit den Operationen emptyStack und push konstruieren,daher heißen diese auch Konstruktoren -top und pop sind Destruktoren,auch Selektoren genannt

Zusätzliche Operationen: isFull liefert true, falls der Stack voll ist Size(s) liefert die aktuelle Anzehl der Elemente in s maxSize(s)- die max.mögliche Anzahl von Elementen eines Stacks

4.Implementierung durch ein Array Wenn man bereit ist,eine maximale Stackgröße hinzunehmen,kann man einen Stack mit einem Array A und einer Integervariablen TopIndex mit 0<= TopIndex<A.lenght implementieren B E I S P I E L J Q P M V H TopIndex MaxIndex

5.Implementierung durch eine Liste In den meisten Anwendungsfällen ist vorher nicht absehbar,wie groß der Stack zur Laufzeit werden wird.Wählt man einen großen Wert für MaxIndex,wird evtl.viel Platz verschenkt.Flexibler ist die Implementierung mit einer verketteten Liste. Das ist eine Menge von Kettengliedern(Zellen),die jeweils aus einem Inhalt und einer Referenz auf das folgende Glied bestehen. Die Referenz des letzten Gliedes ist null. L E I P S I E B

5.Auswertung von Postfix- Ausdrücken Jeder arithmetische Ausdruck in normaler Schreibweise kann in eine Postfix- Notation umgewandelt werden,bei der sich die Operatoren stets rechts von der Operanden befinden Beispielweise wird aus dem arithmetischen Ausdruck (2+4)²/(16-7) der Postfix-Ausdruck: ² / Dieser kann mittels eines Stacks von links nach rechts abgearbeitet werden: -Ist das gelesene Datum ein Operand,so wird es mit push auf den Stack gelegt. -Ist das gelesene Datum ein n -steliger Operator,dann wird er auf die obersten n -Elemente des Stacks angewandt.Das Ergebnis ersetzt diese n Elemente.

Abb ² / / ² / / ² / 2 8. / ² / / 36 Ergebnis:4

6.Stackpaare Zwei Stacks werden in einem gemeinsamen Array unterbringt,wobei sie in entgegengesetzte Richtungen aufeinander zuwachsen. Wachstumsrichtung Wachstumsrichtung ==============> <============= L I N K E R R E T H C E R LeftTopIndex RightTopIndex

Literaturhinweis: H.-P. Gumm/M.Sommer Einführung in die Informatik