0 Daumen
774 Aufrufe

Hallo! Meine Frage lautet, was tut dieser code?

code.PNG

Text erkannt:

public void wasGeht (Stack pGleis1, Stack pGleis2)
\{
Gleis 1 Gleis \( = \) new Gleis 0 if (pGleis1.gibName \( Q != \) pGleis2.gibName (2) \{
while (! pGleis1.isEmpty ())
\{
1Gleis.push (pGleis1.top (2) pGleis1.pop 0
\}
while (! 1Gleis.isEmpty ())
\{
pGleis2.push (1Gleis.top ()); 1Gleis.pop 0
8
\}

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Auf Gleis 1 stehen die Züge z1, z2 und z3 in dieser Reihenfolge.

Auf Gleis 2 stehen die Züge z4, z5 und z6 in dieser Reihenfolge.

Gehe den Code Zeile für Zeile durch und halte nach, was sich dadurch auf den Gleisen ändert.

Falls du nicht weißt, was ein bestimmter Methodenaufruf mach, dann schau in die Dookumentation der entsprechenden Klasse nach.

Avatar von 5,7 k

Danke für die Antwort :)

Woher weiß ich, dass die Züge auf dem Gleis stehen? Weil ich hab das jetzt nicht rauslesen können.

Und wo finde ich diese Dokumentation der Klassen?

Woher weiß ich, dass die Züge auf dem Gleis stehen?

Die Funktion bekommt zwei Objekte übergeben, pGleis1 und pGleis2.

Um durchspielen zu können, was die Funktion mit diesen Argumenten macht, muss man Annahmen darüber treffen, welchen Wert die Objekte haben.

Die Klasse Stack und die Methodenaufrufe top, pop und push lassen vermuten, dass es sich bei der Klasse Stack um einen Stapelspeicher handelt (auch Kellerspeicher genannt).

Die Namen pGleis1 und pGleis2 der Objekte lassen vermuten, dass in dem Stapelspeicher gespeichert wird, welche Züge auf dem jeweiligen Gleis stehen.

Also habe ich Züge auf die Gleise gestellt.

Achso verstehe, dankeschön :)

Und wo finde ich diese Dokumentation der Klassen?

Das musst du den fragen, der dir die Aufgabe gestellt hat.

top, pop und push findet man in jeder Klasse, die einen Stapelspeicher implementiert.

  • top liefert üblicherweise das oberste Element des Stapels
  • pop entfernt üblicherweise das oberste Element des Stapels
  • push packt üblicherweise ein Element auf den Stapel

Die Funktion gibName ist für Stapel eher unüblich. Insbesondere handelt es sich deshalb weder um den Stapel der Java-Standardbibliothek, noch um den Stapel der NRW-Abiturklassen.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community