Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Klassen - Verkettete Liste -

Ähnliche Präsentationen


Präsentation zum Thema: "Klassen - Verkettete Liste -"—  Präsentation transkript:

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


Herunterladen ppt "Klassen - Verkettete Liste -"

Ähnliche Präsentationen


Google-Anzeigen