Klassen - Verkettete Liste -

Slides:



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

Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Einführung in die Programmierung Zusammenfassung
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
Threads Richard Göbel.
Binäre Bäume Richard Göbel.
Sortieren mit Binären Bäumen
Java: Dynamische Datentypen
Listen Richard Göbel.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
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.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.

Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
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 Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
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.
Abstrakter Datentyp in C++ I - Klasse -
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Einführung in die Programmierung Datensammlung
FH-Hof Sortieren mit Binären Bäumen Richard Göbel.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
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,
Rekursive Funktionen (Fakultät)
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.
Einführung in die Programmierung
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
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
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 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 Programmierung Wintersemester 2008/09 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 Fachbereich.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Dynamische Datentypen
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
EPROG Tutorium #3 Philipp Effenberger
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 Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
1 // 13_2_ADT_Unger_Graph // ungerichteter, knotenmarkierter Graph als ADT // #include struct Knoten { public: void Erzeuge_Kn (int, char*); char* Get_Marke.
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
1 // Heap als ADT // JW: V1.0 // Vorlage gemaess EED-Quelltext // #include #include // für double pow (double d, int i) #include // fuer INT_MIN.
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;
1 // 9_1_Datei_IO //Elementare Verwendung von Dateien // Vorsicht: nicht robust, #include const int maxLen = 70; void Schreiben(char *, ofstream *); void.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Tutorium Software-Engineering SS14 Florian Manghofer.
Die Klasse Vielfrass in Java
Cäsar-Verschlüsselung
Cäsar-Verschlüsselung
 Präsentation transkript:

Klassen - Verkettete Liste - Aufgabenstellung: Liste aller Erstsemester beliebig lange Liste (statische <-> dynamische Länge) verkettete Liste Programmierung 2 FH Bingen

Klassen - Liste - Graphische Darstellung Programmierung 2 FH Bingen

Verkettete Liste I class Liste { private: struct listelem int value; listelem *next; }; listelem *top, *bottom; public: Liste (); bool is_empty(); void append (int); void print(); bool seek(int); void remove(int); Programmierung 2 FH Bingen

Verkettete Liste II Liste::Liste() { top = bottom = NULL; } Programmierung 2 FH Bingen

Verkettete Liste III bool Liste::is_empty () { if (top == NULL) return true; else return false; } Programmierung 2 FH Bingen

Verkettete Liste IV void Liste::append (int value = 0) { listelem *temp = new listelem; if ( !is_empty()) bottom->next = temp; bottom = temp; bottom->value = value; bottom->next = NULL; } else top = bottom = temp; top->value = value; top->next = NULL; Dynamische Speicher-Allokierung Programmierung 2 FH Bingen

Verkettete Liste V void Liste::print() { int i = 1; listelem *actual = top; if ( !is_empty ()) do cout << i <<". Entry: " << actual->value << endl; i++; } while ( (actual = actual->next) != NULL); else cout << "List is empty!!!!!!" << endl; cout << endl; Programmierung 2 FH Bingen

Verkettete Liste VI bool Liste::seek (int value) { listelem *actual = top; if (!is_empty()) do if (value == actual->value) return true; while ( (actual = actual->next) != NULL); } return false; Programmierung 2 FH Bingen

Verkettete Liste VII void Liste::remove (int value) { if (!is_empty()) if (top->value == value) listelem *temp = top->next; if (bottom == top) bottom = NULL; delete top; top = temp; }

Verkettete Liste VII (cont.) else { listelem *actual = top->next; listelem *pre = top; do if (value == actual->value) pre->next = actual->next; if (actual == bottom) bottom = pre; delete actual; break; } pre = actual; actual = actual->next; while (actual!= NULL); Programmierung 2 FH Bingen

Programmierung 2 FH Bingen Verkettete Liste VIII void main () { char dummy; Liste intlist; intlist.print(); cout << intlist.seek(37) << endl << endl; intlist.append(3); intlist.remove(3); intlist.append(2); cout << intlist.seek (37) << endl << endl; intlist.append(7); intlist.append(37); intlist.remove(37); intlist.append(5); intlist.append(); intlist.remove(5); cin >> dummy; } Programmierung 2 FH Bingen

Programmierung 2 FH Bingen 1. Übungsblatt 1. Aufgabe Entwerfen sie eine Klasse complex, die das Rechnen mit komplexen Zahlen realisieren soll. Denken Sie über Konstruktoren nach! Wie kann man Operator-Overloading sinnvoll einsetzen? 2. Aufgabe Entwerfen und implementieren Sie eine Klasse zur Rechnung mit rationalen Zahlen (Bruchrechnung)! a) Zähler und Nenner sind ganzzahlig. b) der Konstruktor soll den Bruch initialisieren, die interne Darstellung des Bruchs soll Zähler und Nenner teilerfremd darstellen. Hinweis : Wenden Siedie Lösung der 3. Aufgabe an. c) die Klasse soll Methoden zur Realisierung der Grundrechenarten enthalten. d) eine Methode gleich soll die Gleichheit eines Bruchs mit einem vorgelegtem entscheiden. Hinweis: a/b = c/d genau dann, wenn a*d = b*c. e) es soll eine Methode print zum Ausdruck des Bruchs zur Verfügung stehen. 3. Aufgabe Berechnen sie den größten, gemeinsamen Teiler ggT(a,b) zweier, positiver, ganzer Zahlen a und b. Entwickeln Sie aus der Beziehung ggT(a,b) = ggT(a%b, b) für a > b (auch bekannt als Euklidischer Algorithmus) eine rekursive Funktion. Programmierung 2 FH Bingen