Vorlesung Datenstrukturen

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Datenstrukturen"

Transkript

1 Vorlesung Datenstrukturen Lineare Listen (2) Doppelt verkettete Listen Ringlisten, Stapel, Schlangen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 175

2 Doppelt verkettete Listen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 176

3 Motivation Problem Speziell beim Löschen eines Listenelements haben wir gesehen, dass es sich hierbei um eine Operation konstanter Laufzeit handelt, wenn das Vorgängerelement bekannt ist. Bisher konnten wir den Vorgänger eines bekannten Listenelementes jedoch nur bestimmen, wenn wir die Liste bis zum bekannten Listenelement sequentiell durchmustert haben. Abhilfe Dieser zusätzliche Aufwand an Rechenzeit lässt sich vermeiden, wenn wir die bisher bekannte Datenstruktur Liste so modifizieren, dass zusätzlich zum Verweis auf den Nachfolger eines Listenelements auch noch ein Verweis auf seinen Vorgänger erfolgt. Vorteil Somit lässt sich konkret für die Operation des Löschens eines Listenelements sein Vorgänger direkt bestimmen und wir haben pauschal lediglich eine Laufzeit von O(1) für das Löschen eines Listenelements. Des Weiteren lassen sich durch die Bidirektionalität der Verkettung der Datenstruktur Liste auch noch weitere typische Listenoperationen beschleunigen. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 177

4 Typdefinition eines Listenelements struct node { node* ; // Verweis auf Vorgänger Elementtyp data; node* next; // Verweis auf Nachfolger }; data next Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 178

5 Listenkonstruktion Konstruktion des Listenkopfes In Ergänzung zur einfach verketteten Liste muss jetzt auch das Vorgängerelement mit dem Nullzeiger initialisiert werden. struct node { node* ; Elementtyp data; node* next; }; node* head = new node; head-> = 0; head->next = 0; head data next 0 0 Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 179

6 Einfügen am Listenanfang node* temp = new node; // Bereitstellen des Speicherplatzes head-> = temp; temp->next = head; temp-> = 0; /* Vorgänger des alten Listenkopfes muss auf das neue Element verweisen */ /* Nachfolger des neuen Elements muss auf den alten Listenkopf zeigen */ /* Vorgänger des neuen Elements wird der Nullzeiger zugewiesen */ head = temp; // eingefügtes Element ist neuer Listenkopf head temp data next data next 0 head Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 180

7 Einfügen am Listenende Voraussetzung Zeiger last auf letztes Listenelement existiert node* temp = new node; // Bereitstellen des Speicherplatzes temp-> = last; /* Vorgänger des neuen Listenelements ist das bisherige letzte Element */ last->next = temp; temp->next = 0; last = temp; /* Nachfolger des bisher letzten Elements ist das neue Listenelement */ /* Nachfolger des neuen Elements wird der Nullzeiger */ // eingefügtes Listenelement ist letztes last data next data next 0 last temp Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 181

8 Einfügen in Listenrumpf Voraussetzung Existenz eines Zeigers, der auf das Listenelement zeigt, hinter dem eingefügt werden soll temp = new node; // Bereitstellen des Speicherplatzes temp-> = ; /* Vorgänger des neuen Listenelements ist das Element, auf das verweist */ temp->next = ->next; /* Nachfolger des neuen Elements ist der Nachfolger des Elements */ ->next-> = temp; /* Nachfolger des Vorgängers des neuen ->next = temp; Elements wird das erzeugte Element */ // Element wird Nachfolger des Vorgängers data next data next data next temp Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 182

9 Beispielliste struct node { unsigned char data; node*, node* next; }; node* head = new node; head->data = 'A'; head-> = 0; node* last = head; // Erzeugen des Listenkopfs // Kopf besitzt keinen Vorgänger for ( int i = 1; i < 10; i++ ) { // Erzeugen des Listenrumpfs node* temp = new node; temp->data = 'A' + i; temp-> = last; // Verknüpfe erzeugtes Element mit Vorgänger last->next = temp; // Verknüpfe Vorgänger mit erzeugtem Element last = temp; // Merke erzeugtes Listenelement } last->next = 0; // Markiere Listenende Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 183

10 Löschen des Listenkopfs Voraussetzung Zu löschendes Element elem entspricht dem Listenkopf head Beachte Situation Potentielle Erzeugung der leeren Liste nach dem Löschen des Listenkopfes head = head->next; // Neuer Listenkopf ist Nachfolger des alten Kopfes if (head) // Wenn Liste nicht leer ist, dann head-> = 0; // Listenkopf hat keinen Vorgänger delete elem; // Belegten Speicherplatz freigeben!!! elem = 0; // Zeiger mit Nullzeiger initialisieren!!! head elem data next data next elem 0 head Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 184

11 Löschen des Listenendes Voraussetzung Zu löschendes Element elem entspricht dem letzten Listenelement Beachte Situation Potentielle Erzeugung der leeren Liste nach Löschen des letzten Elements node* = elem->; // Neues Listenende ist Vorgänger des alten if () // Wenn Liste nicht leer ist, dann ->next = 0; // Letztes Listenelement besitzt keinen Nachfolger delete elem; // Belegten Speicherplatz freigeben!!! elem = 0; // Zeiger mit Nullzeiger initialisieren!!! data next data next elem 0 elem Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 185

12 Löschen aus Listenrumpf Voraussetzung Der Zeiger elem verweist auf das zu löschende Listenelement, das jedoch nicht das erste oder letzte Element der Liste sein darf. node* = elem->; // Vorgänger des zu löschenden Listenelements node* next = elem->next; // Nachfolger des zu löschenden Listenelements ->next = next; // Nachfolger des Vorgängers wird der Nachfolger next-> = ; // Vorgänger des Nachfolgers wird der Vorgänger delete elem; // Belegten Speicherplatz freigeben!!! elem = 0; // Zeiger mit Nullzeiger initialisieren!!! data next data next data next elem next Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 186

13 Doppelt verkettete Listen Vorteil Wir haben durch Ergänzung der Struktur eines Listenelements um eine zusätzliche Zeigerkomponente die direkte Verbindung zu seinem Vorgänger realisiert. Mit Hilfe dieser doppelten Verkettung können wir durch eine Liste direkt bidirektional navigieren, womit einige typische Anwendungen auf Listen besser modellierbar und effizienter ausführbar werden. Nachteil Die Vorteile der doppelten Verkettung erkauft man sich auf Kosten des für die zusätzliche Komponente extra benötigten Speicherplatzes (je Listenelement). Des Weiteren sind auch die Verkettungsoperationen von Listenelementen bei Einfüge- und Löschoperationen umfangreicher und komplexer (und damit fehleranfälliger) geworden. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 187

14 Ringlisten Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 188

15 Ringlisten Aufbau Der Nachfolger des letzten Elements einer Ringliste ist nicht der Nullzeiger sondern der Listenkopf. Deshalb besteht eine Ringliste grundsätzlich aus mindestens einem Element. Ringlisten können sowohl einfach als auch doppelt verkettet sein. data next data next data next Vorteile Es wird nur noch ein Zeiger auf ein beliebiges Listenelement benötigt, um alle Listenelemente adressieren zu können. Einfüge- und Löschoperationen können vereinfacht werden, denn es muss nicht mehr unterschieden werden, an welcher Listenposition die Operation stattfindet. Bestimmte Probleme können adäquat mit Hilfe einer Ringliste modelliert werden. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 189

16 Problem des Josephus Legende Josephus Flavius war ein berühmter jüdischer Historiker des ersten Jahrhunderts. Während des Jüdisch-Römischen Krieges wurden er und seine Begleiter von römischen Soldaten umzingelt und in einer Höhle eingeschlossen. Nach der Legende entschieden sich die Juden, sich lieber selbst zu töten als in Gefangenschaft zu geraten. Sie bildeten deshalb einen Kreis und die jeweils dritte Person im Kreis sollte getötet werden, so lange bis nur noch einer übrig blieb, der nach dem Willen der Gruppe Selbstmord begehen sollte. Josephus hatte allerdings nicht die Absicht zu sterben. So fand er schnell die einzig sichere Position im Kreis und blieb deshalb am Leben. Modellierung mit Ringliste Welches Element aus einer zirkulären Liste von N Elementen bleibt nach der wiederholten Entfernung des jeweils M-ten Elements übrig? Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 190

17 Problem des Josephus N=8, M= Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 191

18 Listen - Zusammenfassung (1) Vorteile Listen belegen nur so viel Speicherplatz, wie zur Speicherung der in ihnen enthaltenen Elemente tatsächlich benötigt wird neue Elemente können während der Laufzeit beliebig hinzugefügt werden existierende Listenelemente können jederzeit gelöscht werden die Größe von Listen (Elementanzahl) wird nur durch den verfügbaren Speicherplatz begrenzt Einfügen eines Elements ist prinzipiell in O(1) möglich Entfernen eines Elements ist prinzipiell in O(1) möglich Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 192

19 Listen - Zusammenfassung (2) Nachteile auf einzelne Listenelemente kann nicht wahlfrei sondern nur navigierend über den jeweiligen Vorgänger oder Nachfolger (nur bei doppelter Verkettung) des selektierten Listenelements zugegriffen werden Die Suche benötigt (auch für sortierte Listen) immer eine Zeitkomplexität von O(n). Für Einfüge und Löschoperationen ist evtl. eine vorherige Durchmusterung der Liste nötig, um die Einfüge- bzw. Löschposition zu bestimmen O(n) Selbstprogrammierte Listen tendieren zu hoher Fehleranfälligkeit bei Verkettungsoperationen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 193

20 Stapel und Schlangen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 194

21 Stapel und Schlangen Motivation Für viele Anwendungsgebiete wird die komplette Funktionalität, die Datenstrukturen wie Felder oder Listen bieten, gar nicht benötigt. Konsequenz Ziel Einschränkung der selektierenden oder ändernden Zugriffsmöglichkeiten auf Datenstrukturen. Durch die Beschränkung der durchführbaren Operationen lassen sich Datenstrukturen einfacher und problemgerechter implementieren. Beispiele Ein Stapel (auch als Keller oder Stack bezeichnet) ist eine Datenstruktur, die eine Menge von Daten aufnehmen und in umgekehrter Reihenfolge wieder abgeben kann. Eine Schlange (auch als Queue bezeichnet) ist eine Datenstruktur, die eine Menge von Daten aufnehmen und diese in der Reihenfolge des Einfügens wieder abgeben kann. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 195

22 Stapel Funktionen Eine Stapel-Datenstruktur kennt im Wesentlichen nur zwei Operationen: push pop Ablegen eines Elements auf dem Stapel Entnehmen des zuletzt abgelegten Elements vom Stapel Zuletzt eingefügte Elemente werden also zuerst wieder entnommen. Diese Art des Vorgehens wird auch als LIFO-Prinzip bezeichnet (Last In, First Out) Implementierung mit Liste Operationen zum Ablegen und Entnehmen eines Elements müssen auf dasselbe Listenende beschränkt werden. Beispiel (aus der Realwelt) Stapel Kaffeebecher in der Mensa Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 196

23 Stapel: Implementierung Vorbemerkung Zu einem späteren Zeitpunkt wird die Datenstruktur Stapel detailliert besprochen. An dieser Stelle erfolgt nur eine beispielhafte Demonstration einer möglichen Implementierung der Basisfunktionen mit Hilfe einer via head adressierten Liste. push Aufgrund der LIFO-Elementverarbeitung der Datenstruktur Stapel bietet sich zur Ablage das aus V3 bekannte Einfüge- verfahren am Listenanfang an: pop Da sich das zuletzt eingefügte Element am Listenkopf befindet, müssen wir dieses löschen und den Listenkopf entsprechend modifizieren: node* temp = new node; temp->next = head; head = temp; node* temp = head; head = head->next; delete temp; temp = 0; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 197

24 Schlangen Funktionen Auch die Datenstruktur Schlange kennt nur zwei wesentliche Funktionen: enqueue dequeue Einfügen eines Elements an das Ende der Schlange Entfernen eines Elements vom Anfang der Schlange Eingefügte Elemente werden also in der Reihenfolge ihres Einfügens wieder entfernt. Dies wird auch als FIFO-Prinzip bezeichnet (First In, First Out) Realisierung mit Liste Bei Implementierung einer Schlange mit Hilfe einer Listenstruktur müssen die Operationen zum Ablegen und Entnehmen eines Elements auf die jeweils entgegengesetzten Listenenden beschränkt werden. Beispiel (aus der Realwelt) Schlange an der Essenausgabe in der Mensa Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 198

25 Schlange: Implementierung Vorbemerkung Analog der Datenstruktur Stapel erfolgt eine detaillierte Darstellung später. Anbei nur eine grobe Beispielimplementierung der zwei Grundoperationen auf Basis einer via head adressierten Liste. enqueue Wir fügen analog V2 am Listenende ein. Voraussetzung ist die Existenz eines Zeigers last auf das letzte Element der Liste head. dequeue Wir entnehmen das erste Element der Liste, löschen also am Listenanfang. dequeue entspricht daher der pop-funktion unserer Stapelimplementierung. node* temp = new node temp->next = 0; last->next = temp; last = temp; node* temp = head; head = head->next; delete temp; temp = 0; Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 199

26 Ende der Vorlesung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 200

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Lineare Listen (1) Einfach verkettete Listen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 148 Wiederholung Felder Vorteil Der Zugriff auf ein beliebiges

Mehr

Vorlesung Datenstrukturen

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

Mehr

5.3 Doppelt verkettete Listen

5.3 Doppelt verkettete Listen 5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt

Mehr

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,

Mehr

ALP II Dynamische Datenmengen Datenabstraktion

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

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

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

Mehr

Spezielle Datenstrukturen

Spezielle Datenstrukturen Spezielle Datenstrukturen Stapel (Stack) Beschreibung der Datenstruktur Stapel Ein Stapel (engl. Stack), auch Stapelspeicher oder Keller bzw. Kellerspeicher genannt, ist eine Datenstruktur, in der Daten

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 3. Verkettete Listen, Stacks, Queues Verkettete lineare Listen -

Mehr

Logische Datenstrukturen

Logische 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

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

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

Mehr

12. Dynamische Datenstrukturen

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

Mehr

8 Elementare Datenstrukturen

8 Elementare Datenstrukturen Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

12.3 Ein Datenmodell für Listen

12.3 Ein Datenmodell für Listen Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

C- Kurs 09 Dynamische Datenstrukturen

C- Kurs 09 Dynamische Datenstrukturen C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für

Mehr

16. Dynamische Datenstrukturen

16. Dynamische Datenstrukturen Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange

Mehr

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik 5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen

Mehr

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil π Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig Oct

Mehr

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Feld. Definition Feld

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Feld. Definition Feld Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 208 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München TUMonline-Einträge: Vorlesung https://campus.tum.de/tumonline/wblv.

Mehr

Listen. Für die Verarbeitung von Listen durch den Rechner ist relevant:

Listen. Für die Verarbeitung von Listen durch den Rechner ist relevant: Listen Für die Verarbeitung von Listen durch den Rechner ist relevant: Anzahl der Listenelemente - beim erstmaligen Erstellen der Liste bekannt/unbekannt - stabil vs. wechselhaft - Existenz eines Maximalwerts

Mehr

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Feld als sequentielle Liste. Definition Feld

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Feld als sequentielle Liste. Definition Feld Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 205 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Einführung 2 Grundlagen von Algorithmen

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

13. Dynamische Datenstrukturen

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

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

7. Verkettete Strukturen: Listen

7. Verkettete Strukturen: Listen 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 13 Listen und Bäume...13-2 13.1 Einfach verkettete lineare Listen...13-2 13.1.1 Vorbetrachtungen zum Programm... 13-2 13.1.2 Programm zum Sortierroblem... 13-4 13.2 Standardoerationen für einfach

Mehr

Vorlesung Datenstrukturen

Vorlesung 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)

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen 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

11. Elementare Datenstrukturen

11. Elementare Datenstrukturen 11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische

Mehr

Stand der Vorlesung. Vergleich verkettete Liste und sequentielle Liste

Stand der Vorlesung. Vergleich verkettete Liste und sequentielle Liste Stand der Vorlesung Kapitel 5 Elementare Datenstrukturen Felder: Folge gleichartiger Elemente Repräsentiert als statische Liste, sequentiell verwaltete Elemente Feste Länge, statische Struktur Direkter

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Technische Universität München

Technische Universität München Stand der Vorlesung Kapitel 5 Elementare Datenstrukturen Felder: Folge gleichartiger Elemente Repräsentiert als statische Liste, sequentiell verwaltete Elemente Feste Länge, statische Struktur Direkter

Mehr

LISTEN ALS ABSTRAKTE DATENTYPEN

LISTEN ALS ABSTRAKTE DATENTYPEN LISTEN ALS ABSTRAKTE DATENTYPEN Listen Formal: Sei A eine geg. Menge von Datenelementen; Liste l = a 1 endliche Folge von Elementen aus A, mit n a 1 : Länge der Liste l : erstes Element von l (head) a

Mehr

LISTEN ALS ABSTRAKTE DATENTYPEN

LISTEN ALS ABSTRAKTE DATENTYPEN LISTEN ALS ABSTRAKTE DATENTYPEN Listen Formal: Sei A eine geg. Menge von Datenelementen; Liste l = a 1 endliche Folge von Elementen aus A, mit n a 1 : Länge der Liste l : erstes Element von l (head) a

Mehr

Verkettete Listen (Linked Lists) Vorlesung 3

Verkettete Listen (Linked Lists) Vorlesung 3 Verkettete Listen (Linked Lists) Vorlesung 3 Verkettete Listen Heute betrachten wir: Einfach verkettete Listen (singly linked lists) Doppelt verkettete Listen (doubly linked lists) Verkettete Listen Eine

Mehr

1. Die rekursive Datenstruktur Liste

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

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

1 Abstrakte Datentypen

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;

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 4.1 Grundoperationen Aufgabenstellung: 3 4.1 Grundoperationen Aufgabenstellung: Verwalten

Mehr

Nachtrag: Vergleich der Implementierungen von Stack

Nachtrag: Vergleich der Implementierungen von Stack Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Fallstudie: Online-Statistik

Fallstudie: Online-Statistik Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...

Mehr

Algorithmen und Datenstrukturen Abstrakte Datentypen. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen und Datenstrukturen Abstrakte Datentypen. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Abstrakte Datentypen M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Die abstrakten Datentypen Stapel, Warteschlange und Liste sind bekannt und können angewendet werden Listen

Mehr

Abiturprüfung Informatik, Grundkurs

Abiturprüfung Informatik, Grundkurs Seite 1 von 6 Abiturprüfung 2008 Informatik, Grundkurs Aufgabenstellung: Bei Warteschlangen kommt es häufig vor, dass einige Elemente aus berechtigten Gründen nicht am Ende der Schlange eingefügt werden

Mehr

Verkettete Datenstrukturen: Listen

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).

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011 Kompaktkurs Einführung in die Programmierung Klausur Seite 1/10 Name, Vorname, Unterschrift: Matrikelnummer: Wichtig: Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 6 (14.5.2014) Abstrakte Datentypen, Einfache Datenstrukturen Algorithmen und Komplexität Abstrakte Datentypen : Beispiele Dictionary: (auch:

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Feld. Feld als sequentielle Liste

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Feld. Feld als sequentielle Liste Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 204 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Einführung 2 Grundlagen von Algorithmen

Mehr

ADT: Verkettete Listen

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

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang.  WS 07/08 Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ini.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Listen kennenlernen Listeniteratoren verstehen

Mehr

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen Datentypen elementare strukturierte skalare reelle statische dynamische int real float list homogen set inhomogen record Der elementare Datentyp nat bestehend aus einer Objektmenge und den darauf definierten

Mehr

Listen. M. Jakob. 20. September Gymnasium Pegnitz

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

Mehr

Konkatenation zweier Listen mit concat

Konkatenation zweier Listen mit concat Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,

Mehr

Programmieren I. Kapitel 13. Listen

Programmieren I. Kapitel 13. Listen Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 Elementare Datenstrukturen) Prof. Dr. Susanne Albers Lineare Listen (1) Lineare Anordnung von Elementen eines Grundtyps (elementarer Datentyp

Mehr

Programmieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff Programmieren in C Rekursive Strukturen Prof. Dr. Nikolaus Wulff Rekursive Strukturen Häufig müssen effizient Mengen von Daten oder Objekten im Speicher verwaltet werden. Meist werden für diese Mengen

Mehr

Praxis der Programmierung

Praxis der Programmierung Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen

Mehr

ADT: Verkettete Listen

ADT: Verkettete Listen ADT: Verkettete Listen Motivation I public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler= zaehler; this.nenner = nenner; Konstruktor zum Initialisieren der Werte

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Kapitel 3: Elementare Datenstrukturen Mariano Zelke Datenstrukturen 2/18 Einfach verkettete Listen Mariano Zelke Datenstrukturen 3/18 Eine Zeiger-Implementierung

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

1. Die rekursive Datenstruktur Liste

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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Feedback Vielen Dank für das Feedback auf Moodle! Bitte

Mehr

5. Strukturen und Algorithmen

5. Strukturen und Algorithmen 5. Strukturen und Algorithmen Struktur 5.1 Modellierung allgemein Element Kabel1 Lampe Kabel2 Objekte der Struktur Struktur -> Klasse Element -> Klasse Datenstruktur Dr. Norbert Spangler / Grundlagen der

Mehr

Einfach verkettete Liste

Einfach verkettete Liste 5. Listen Verkettete Listen Einfach verkettete Liste Für jedes einzelne Element der Liste wird ein Hilfsobjekt erzeugt. Jedes Hilfsobjekt enthält zwei Instanzvariablen: den zu speichernden Wert bzw. einen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

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 Teil 8: Dynamische Speicherverwaltung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 8 Dynamische Speicherverwaltung... 3 8.1

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

Algorithmen I. Sascha Witt Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799

Algorithmen I. Sascha Witt Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 Algorithmen I Sascha Witt 10.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Erinnerung

Mehr

Übungsblatt 6: Softwareentwicklung I (WS 2006/07)

Übungsblatt 6: Softwareentwicklung I (WS 2006/07) Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J.O. Blech Dipl.-Inform. M.J. Gawkowski Dipl.-Inform. N. Rauch Technische Universität Kaiserslautern Fachbereich Informatik AG Softwaretechnik Übungsblatt 6:

Mehr

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe

Mehr

Datenstrukturen, Listen und Bäume

Datenstrukturen, Listen und Bäume Inhalt: Datenstrukturen, Listen und Bäume Datenstrukturen Definition und Arten Dynamische lineare Datenstrukturen: lineare, verkettete Liste Nichtlineare dynamische Datenstrukturen: Binärbaum Die Umsetzung

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen Gliederung 5. Compiler 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

Mehr

Struktur am Beispiel einer Liste

Struktur am Beispiel einer Liste Struktur am Beispiel einer 1 Einfügen(neues element ) Aktiv Wartend knoten knoten 2 Einfügen(neues element ) Aktiv Wartend knoten knoten 3 Einfügen(neues element ) Aktiv Wartend knoten knoten 4 Aha, ich

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012 , Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen

Mehr

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite

Mehr

Listen. M. Jakob. Gymnasium Pegnitz. 20. September Hinführung: Wartenschlangen. Grundprinzip von Listen Rekursion

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung

Mehr

Informatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8

Informatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8 Informatik 1 (251-0832-00) D-MAVT F2010 Rekursion, Signaturen Nachbesprechung Blatt 6 Aufgabe 1 - Strukturen und Zeiger Genau die Variablen angeben, die sich geändert haben. Implizite Initialisierung ergänzt

Mehr

Einführung in die Informatik 2

Einfü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

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

3 Dynamische Datenstrukturen

3 Dynamische Datenstrukturen 3 Dynamische Datenstrukturen Beispiele für dynamische Datenstrukturen sind Lineare Listen Schlangen Stapel Bäume Prof. Dr. Dietmar Seipel 128 Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester

Mehr

ADT: Verkettete Listen

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

Mehr

6. Verkettete Strukturen: Listen

6. Verkettete Strukturen: Listen 6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten

Mehr

Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren

Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren Algorithmen und Datenstrukturen Kapitel 4 Neue Datenstrukturen, besseres (?) Sortieren Frank Heitmann heitmann@informatik.uni-hamburg.de 4. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen

SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen Martin Dietzfelbinger April 2010 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS10 Kapitel 2 Datentyp

Mehr