Beim Einfügen müssen zwei Fälle unterschieden werden:
Eine Schlange queue ist leer, wenn sowohl ihr Attribut head
als auch das Attribut tail
auf null zeigen, in diesem Fall gibt es keine Knoten:
Beginne die Implementation in der Klasse "LinkedQueue" indem du die fehlenden Attribute und den Konstruktor einfügst/vervollständigst.
Implementiere dann die Methode isEmpty
und teste sie mit einer leeren Schlange.
Um nun ein Element in die Schlange einzufügen geht man wie folgt vor:
null
gesetzt.head
als auch tail
der Schlange auf diesen Knoten gesetzt - da es nur einen Knoten gibt ist head derselbe Knoten wie tail.
Füge in der enqeue
-Methode folgende Funktionalität ein:
head
und tail
der Schlange passendTeste deine Methode und überprüfe die Funktionalität mit dem BlueJ-Inspektor.
Um ein Element an eine nicht leere Schlange anzuhängen geht man folgendermaßen vor:
null
gesetzt.next
des Knotens, auf den tail
zeigt auf den neuen Knoten gesetzt.tail
ebenfalls auf den neuen Knoten zeigen und entsprechend gesetzt werden.Das folgende Bild veranschaulicht die Situation: schwarz gestrichelt vor dem anhängen des neuen Knotens, grün danach:
Füge in der enqeue
-Methode im else-Zweig der Abfrage, ob die Schlange leer ist die folgende Funktionalität ein:
next
des bislang letzten Knotens sowie tail
der Schlange passend
Teste deine Methode und überprüfe die Funktionalität mit dem BlueJ-Inspektor. Du solltest nun beliebig Elemente an deine Schlange anhängen können. Überprüfe, ob head
und tail
der Schlange immer passend gesetzt sind. Bewege dich von Knoten zu Knoten durch die Schlange