Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Klassen - Verkettete Liste -
Aufgabenstellung: Liste aller Erstsemester beliebig lange Liste (statische <-> dynamische Länge) verkettete Liste Programmierung FH Bingen
2
Klassen - Liste - Graphische Darstellung Programmierung FH Bingen
3
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 FH Bingen
4
Verkettete Liste II Liste::Liste() { top = bottom = NULL; } Programmierung FH Bingen
5
Verkettete Liste III bool Liste::is_empty () { if (top == NULL) return true; else return false; } Programmierung FH Bingen
6
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 FH Bingen
7
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 FH Bingen
8
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 FH Bingen
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.)
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 FH Bingen
11
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 FH Bingen
12
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 FH Bingen
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.