Einfach und doppelt verkettete Listen in JAVA by Jens Weibler

Slides:



Advertisements
Ähnliche Präsentationen
DES-Simulator in JAVA, objektorientiert
Advertisements

Klassen - Verkettete Liste -
Sortieren I - Bubblesort -
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Sortieren mit Binären Bäumen
Java: Dynamische Datentypen
Listen Richard Göbel.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Algorithmen und Datenstrukturen
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 (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) 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
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Operationen auf verketteten Listen
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
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.
Vorbereitung: struct SX { int x; struct SX *p; } *px, *ph; px: Zeiger auf Listen- anfang ph: Hilfszeiger px = NULL; px zeigt auf leere Liste px.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Einfügen am Ende der Liste Vorher: Nachher:. Einfügen am Ende der Liste //Klasse Knoten public Knoten hintenEinfuegen(Datenelement dneu) { nachfolger.
Die Methode public Knoten einfuegenVor (Datenelement dNeu, Datenelement dVergleich) public Knoten einfuegenVor(Datenelement dNeu, Datenelement dVergleich){
Entwurfsmuster – Iterator
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Informatikunterricht mit Java
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Rekursion mit Listen: Quicksort
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik WS 200^8 Dr. Wieland Schwinger
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 Programmierung
Einführung in die Programmierung
Grundlagen der Programmierung
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 Fachbereich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmiersprache C 4
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
1 // Verkettete Liste 3 // demonstriert verkettete Listen und // Rekursion // (mit Entfernen eines Listenelementes) // #include struct Liste { int Element;
Binärer Suchbaum IV AVL-Baum I
M a r c – o l i v e r p a h l Informatik II – Kapitel 12 „Sortier-Algorithmen“ Zusammenfassung des Kapitel 12 Küchlin, Weber, Einführung in die Informatik,
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Tutorium Software-Engineering SS14 Florian Manghofer.
Praktische Informatik 1
Zwei Denkansätze zur Klasse Schlange
Raphael Fischer Informatik II - Übung 05 Raphael Fischer
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Einfach und doppelt verkettete Listen in JAVA by Jens Weibler Referat: Listen Einfach und doppelt verkettete Listen in JAVA by Jens Weibler

Was sind Listen? Listen sind eindimensional verkettete Elemente Rekursive Datenstruktur: Liste = Element + Liste | Leer

Wofür kann man Listen verwenden? (Vorteile) Variable Anzahl von Elementen zur Laufzeit (Nachteil eines Arrays -> feste Länge) und somit auch keine Speicherverschwendung Beim Sortieren einer Liste werden Pointer verschoben, nicht die Daten selber!

Wie ist eine Liste aufgebaut? Eine einfach verkettete Liste Eine Liste beginnt immer mit einem Kopf Dann folgen beliebig viele Elemente Das Ende bildet ein Verweis auf null Kopf Data Next Data Next null

Das ganze jetzt in JAVA public class ListenElement { // Inhalt private object data; // nächstes Element private ListenElement next = null; // Konstruktor public ListenElement (object data, ListenElement next) this.data = data; this.next = next; } public class Liste { // Kopf der linearen Liste private ListenElement start = null; // liefert start zurück public ListenElement getStart () return start; }

Einfügen von Elementen (am Anfang einer Liste) Vorher: Kopf Data Next null Nachher: Kopf Data Next // Methode in Liste.java: public void vorneEinfuegen (object data) { start = new ListenElement (data, start); }

Einfügen von Elementen (am Ende oder im Inneren einer Liste) Vorher: Kopf null Data Next Nachher: Data Next Kopf Data Next // Methode in ListenElement.java: public void einfuegen (object data) { next = new ListenElement (data, next); }

Löschen eines Elements Kopf Data Next Data Next Data Next null // Methode in ListenElement.java: // Entfernen des naechsten Elements public void loescheNext () { if (next != null) next = next.next; }

Rekursives Durchgehen einer Liste am Beispiel toString() // Methode in Liste.java: public String toString () { return "[ " + start.toString() + " ]"; } // Methode in ListenElement.java: if (next == null) return data.toString(); else return data.toString() + ", " + next.toString();

Doppelt verkettete Listen Wofür doppelt verkettete Listen? Möglichkeit bei einer sortierten Liste rückwärts zu suchen Direktes Anhängen/Löschen eines Elements am Ende (Benutzung als Puffer – FIFO)

Was ändert sich? Schema einer doppelt verketteten Liste mit Fuss Kopf Data Next Previous Data Next Previous Fuss null