Java Gleise sortieren mit Stack?

2 Antworten

Mit Gleis B sind vermutlich die Gleise 1 und 2 gemeint, die erst geleert werden müssen, bevor eine Aufteilung der einzelnen Waggons vorgenommen werden kann.

Der erste Schritt wäre demzufolge, dass du so lange von Gleis 1 Waggons holst (pop), bis der Gleis leer ist. Das Gleiche machst du für Gleis 2. Die geholten Waggons packst du anschließend auf den Startgleis (push).

Pseudocode:

so lange gleis nicht leer:
  waggon = gleis.pop()
  startGleis.push(waggon)   

Wie diese beiden Grundfunktionen (für pop und push) bei dir heißen, musst du selbst (in der Klasse Gleis) nachschauen.

Der nächste Aufgabenteil ist nicht sonderlich fordernder. Du machst im Prinzip das Gleiche wie bei Schritt 1, nur dass du diesmal den geholten Waggon auf seinen Wert (A/I) prüfst und dementsprechend entweder auf Gleis 1 oder 2 schiebst.

Der Abschluss erwartet letztendlich von dir, dass du so lange, wie Gleis 1 und 2 Waggons besitzen, jeweils einen Waggon abziehst und wieder auf den Startgleis setzt.

Nun ist in deiner Methode offensichtlich schon einiger Code vorgeschrieben worden. Abgesehen davon, dass er dir schon einiges abnimmt, birgt er noch ein Bezeichnerwirrwarr. Ob nun Gleis A der Startgleis und Gleis B und C die beiden anderen Gleise (ziel1, ziel2) darstellen sollen, ist nicht ersichtlich. Das solltest du zuerst in Ordnung bringen. Der Rest ist in erster Linie Nachschlageaufwand, welche Funktionen in der Klasse Gleis verfügbar sind.

Bild zum Beitrag

Habe die Aufgabe gelöst und ist so geworden wie ich das haben wollte. Vielleicht erkennst du ja das aus den 3 Buchstaben Gleisen die Zielgleise und das start Gleis geworden sind.

 - (Computer, Java, stack)