verkettete Strukturen
Simulation einer Warteschlange In der Mensa stellen sich Kunden an der Kasse an, die ein Gericht gewählt haben. Sie müssen bezahlen. Wie verwaltet ein Kassenobjekt die anstehenden Kundenobjekte?
Simulation einer Warteschlange Vorschlag: Die Kasse verwaltet die Kunden in einem Array
Simulation einer Warteschlange Nachteile der Lösung: Es muss am Anfang eine feste Anzahl an möglichen Kunden festgelegt werden. Mehr geht dann nicht. Es wird immer der Speicherplatz für die maximal mögliche Anzahl an Kunden vorgehalten. Array → statische Datenstruktur
Alternative: Die Hängeampel jeder Korb hat einen Haken, an dem ein weiterer Korb hängen kann jeder Korb kann einen Inhalt aufnehmen Aufgabe: Modelliere die Klassen Korb und Obst. Die Situation „Hängeampel soll in der Modellierung abgebildet werden. Die Klasse Korb soll Methoden haben, mit denen eine Ampel zusammengestellt werden kann. Die Klasse Obst verwaltet eine Zeichenkette, die sie auf Anfrage zurückgeben kann.
Modellierung der Hängeampel Klasse Korb: verweist auf sich selbst ein Knotenobjekt verwaltet ein anderes Knotenobjekt rekursive Klasse entspricht der Klasse Korb entspricht der Klasse Obst
Objektbeziehungen null: keine Referenz auf ein Objekt Bild Ampel null: keine Referenz auf ein Objekt kann geprüft werden: if (naechster != null) {
Aufgabe: Kalorienmenge Formuliere das Vorgehen des Algorithmus in Stichpunkten Implementiere den Algorithmus Problem: die Ampel hat nur Zugriff auf das erste Knotenobjekt
Aufgabe: Zugriff auf i-tes Element public String gibObstAusKorb(int pIndex) erster Korb hat Index 0, usw. zunächst keine Fehlerbehandlung: man darf davon ausgehen, dass nur gültige Indizes als Parameter übergeben werden. Methode testen!! im zweiten Schritt: Fehlerbehandlung bei einem ungültigen Index
Aufgabe: rekursiver Zugriff auf i-tes Element public String gibObstAusKorbRekursiv(int pIndex) Methode in Klassen Obstampel und Knoten! erster Korb hat Index 0, usw. zunächst keine Fehlerbehandlung: man darf davon ausgehen, dass nur gültige Indizes als Parameter übergeben werden. Methode testen!! im zweiten Schritt: Fehlerbehandlung bei einem ungültigen Index