Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Zwei Denkansätze zur Klasse Schlange

Ähnliche Präsentationen


Präsentation zum Thema: "Zwei Denkansätze zur Klasse Schlange"—  Präsentation transkript:

1 Zwei Denkansätze zur Klasse Schlange

2 Die beiden Denkansätze
Wenn wir Datensätze in einem Feld speichern, haben wir nur eine begrenzte Zahl freier Plätze. Das bringt uns Fehlermeldungen und Probleme bei unerwartet vielen Daten. Wenn wir stattdessen eine Knotenliste verwenden, haben wir theoretisch beliebig viele Plätze. (Praktisch sind wir durch den Arbeitsspeicher beschränkt.)

3 verschiebeNachLinks ()
Die Klasse Knoten Knoten inhalt nachfolger Knoten () gibNachfolger () setzeNachfolger () verschiebeNachLinks () Die Klasse Knoten hat nur zwei Attribute: ihren Inhalt (bei uns eine Person der Warteschlange) und ihren Nachfolger, der wieder ein Knoten oder null ist. Standardmethoden sind der Konstruktor und die Möglichkeit, den Nachfolger abzufragen und einen anderen Nachfolger anzuhängen.

4 public class Schlange { private Knoten ersterKnoten; /** * Konstruktor. * Erzeuge eine leere Schlange. */ public Schlange() ersterKnoten = null; }

5 Neuer Knoten in der Schlange
ersterKnoten Wir suchen den letzten Knoten und fügen als seinen Nachfolger den neuen Knoten an.

6 public void neuerKunde (boolean weiblich, String name,
String hautfarbe, String haarfarbe, String schuhfarbe, String kleiderfarbe1, String kleiderfarbe2, String kleiderfarbe3) { int positionX = 0; Knoten aktuellerKnoten = ersterKnoten; if (null == ersterKnoten) ersterKnoten = new Knoten (positionX, 30, weiblich, Name, hautfarbe, haarfarbe, schuhfarbe, Kleiderfarbe1, kleiderfarbe2, kleiderfarbe3); } else positionX = 100; while (aktuellerKnoten.gibNachfolger () != null) aktuellerKnoten = aktuellerKnoten.gibNachfolger (); positionX += 100; aktuellerKnoten.setzeNachfolger (new Knoten (positionX, 30, weiblich, name, hautfarbe, haarfarbe, schuhfarbe, kleiderfarbe1, kleiderfarbe2, kleiderfarbe3));

7 Knoten verlässt die Schlange
ersterKnoten ersterKnoten Wir streichen den ersten Knoten und nehmen seinen Nachfolger als neuen ersten Knoten. In den meisten objektorientierten Programmiersprachen gibt es zu jeder Klasse auch einen Destruktor, mit dem man nicht mehr benötigte Objekte löschen und ihren Speicherplatz freigeben kann. Er könnte alterKnoten.destroy () lauten. In Java gibt es jedoch keine Destruktoren. Hier muss man sich darauf verlassen, dass der sogenannte Garbage collector automatisch merkt, was unnötig ist und gelöscht werden soll.

8 public Person naechsterKunde ()
{ Person ausgabe; if (null == ersterKnoten) ausgabe = null; } else ausgabe = ersterKnoten.gibInhalt (); ausgabe.werdeUnsichtbar (); ersterKnoten = ersterKnoten.gibNachfolger (); while (aktuellerKnoten != null) aktuellerKnoten.verschiebeNachLinks (); aktuellerKnoten = aktuellerKnoten.gibNachfolger (); return ausgabe;


Herunterladen ppt "Zwei Denkansätze zur Klasse Schlange"

Ähnliche Präsentationen


Google-Anzeigen