Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Klassen - Verkettete Liste - Programmierung 2 FH Bingen Aufgabenstellung: Liste aller Erstsemester beliebig lange Liste (statische dynamische Länge) verkettete."—  Präsentation transkript:

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

2 Klassen - Liste - Programmierung 2 FH Bingen Graphische Darstellung

3 Verkettete Liste I Programmierung 2 FH Bingen 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); };

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

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

6 Verkettete Liste IV Programmierung 2 FH Bingen 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

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

8 Verkettete Liste VI Programmierung 2 FH Bingen 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; }

9 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; }

10 Verkettete Liste VII (cont.) Programmierung 2 FH Bingen 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); }

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

12 1. Übungsblatt Programmierung 2 FH Bingen 1. AufgabeEntwerfen 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. AufgabeEntwerfen 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. AufgabeBerechnen 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.


Herunterladen ppt "Klassen - Verkettete Liste - Programmierung 2 FH Bingen Aufgabenstellung: Liste aller Erstsemester beliebig lange Liste (statische dynamische Länge) verkettete."

Ähnliche Präsentationen


Google-Anzeigen