6 Folgen (Teil II - Datenstrukturen und Algorithmen)

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Klassen - Verkettete Liste -
Sortieren I - Bubblesort -
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 5. Stacks und Queues
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Synonyme: Stapel, Keller, LIFO-Liste usw.
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
Java: Referenzen und Zeichenketten
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (06 - Anwendungen von Stapeln und Schlangen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Anwendungen von Stapeln und Schlangen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-3 –Selbstanordnende lineare Listen) 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.

EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Kapitel 2: Datenstrukturen
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
Rekursion Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
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 (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Mark & Sweep Seminar Softwareentwicklung: Garbage Collection Eva Schartner.
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 Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >
Informatik 1 Letzte Übung.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Binäre Bäume Louis Moret und Reto Huber, 5. 11
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
2.4 Rekursion Klassifikation und Beispiele
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Algorithmen und Datenstrukturen Übungsmodul 8
Thomas Negeli | Reference Counting I Folie 1 / 20 Seminar Garbage Collection | WS2005 Reference Counting I Negeli Thomas.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Agenda Motivation und Einordnung Syntaxgerichtete Übersetzung
Grundlagen der Algorithmen und Datenstrukturen Kapitel
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Programmiersprachen II Fortsetzung Datenstrukturen Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Dr. Wolfram Amme, Funktionale Programmierung, Informatik II, FSU Jena, SS Funktionale Programmierung.
Praktische Informatik 1
Praktische Informatik 1
Raphael Fischer Informatik II - Übung 05 Raphael Fischer
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
 Präsentation transkript:

6 Folgen (Teil II - Datenstrukturen und Algorithmen) Modell: [T] mit Basistyp T Invariante: evtl. Längenbeschränkung evtl. Beschränkung des Wertebereichs des Basistyps Operationen: zum Auslesen, Ersetzen von Elementen der Folge, ferner Löschen und Hinzufügen von Elementen

Operationen: Keller (fkt.)Liste Schlange D-Schlange (imp.)Liste (imp.)Feld length length length length length length empty empty empty empty empty put(pos) write(pos) push cons append appendR ins(pos) top head front get(pos) read(pos) pop tail del(pos) pop remove removeF appendF removeR cat cat cut(pos) iterate iterate iterate iterate iterate iterate Vererbungshierarchien bieten sich an!

6.1 Keller (Stapel, stack) wichtigste Operationen: push pop top typische Repräsentationen: Feld (mit „Kellerzeiger“, stack pointer), lineares Geflecht, natürliche Zahl (!) typische Anwendungen: Speicherverwaltung Umwandlung Rekursion -> Iteration Auswertung von Ausdrücken (auch Syntaxanalyse allg.)

Speicherverwaltung mit Keller: Prozedureintritt: Parameter kellern Rücksprungadresse kellern Speicher für die temporären Variablen der Prozedur reservieren Prozeduraustritt: Speicher wieder freigeben Rücksprungadresse auskellern Parameter abräumen Im Gegensatz dazu Speicherverwaltung mit Halde (heap): aufwendiges Suchen eines freien Bereichs bei new aufwendiges Suchen nach freigebbaren Bereichen (die von nicht mehr erreichbaren Objekten belegt werden)

Entrekursivierung mit Keller: (ALP I/II:) 3 Fälle: Prozedur ist endrekursiv: einfach nicht endrekursiv, aber noch linear rekursiv: schwieriger, evtl. endrekursive Einbettung finden nicht linear rekursiv: schwierig - expliziten Keller verwenden Einfaches Beispiel für quadratische Rekursion: Türme von Hanoi void move(int size, int from, int to, int via) { if (size > 0) { move(size-1, from, via, to); carry(from, to); move(size-1, via, to, from); } }

Auswertung/Übersetzung von Ausdrücken: einfach bei Postfix-Notation, weil Syntaxanalyse trivial: Zwischenergebnisse kellern schwieriger bei Infix-Notation, weil Syntaxanalyse nicht trivial: Operanden-Keller und Operatoren-Keller verwenden, dabei Operator-Vorrang berücksichtigen