Stack warum First in First out?

... komplette Frage anzeigen

4 Antworten

Auf was beziehst du dich denn "etwas konkreter"? 

In der "Realtwelt" kann ich mir folgendes Beispiel denken. Man bekommt sehr viele Aufgaben (nach einander). Noch bevor man diese alle komplett abarbeiten kann, kommt schon die nächste. Manchmal "erledigen" sich einige der Aufgaben auch, wann man nichts macht. Deswegen kann es auch sinnvoll sein, sich nach jeder Aufgabenabarbeitung die "neuste" wartende Aufgabe zu nehmen. 

So in die Richtung ... wenn man im Urlaub ist sammeln sich die Emails. Kommt man wieder, werden sich einige der alten Emails schon erledigt haben, da z. B. jemand anderes tätig geworden ist. Oder wenn es wirklich wichtig wäre, hätte man noch eine Erinnerung zu dem Thema bekommen. 

Antwort bewerten Vielen Dank für Deine Bewertung

Es kommt immer auf die Daten an, die man verarbeitet. In vielen Fällen muss nunmal der letzte abgespeicherte Datensatz verarbeitet werden.

Wichtigstes Beispiel: Die Rücksprungadressen von Programmen. Programme springen ständig im Code hin und her. Nach Abarbeitung müssen sie wieder dorthin zurück, wo sie herkamen. Dazu werden die Rücksprungadressen oben auf den Stack gelegt und beim Zurückspringen wieder von oben nach unten abgearbeitet.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von okarin
29.08.2016, 15:30

Ja aber ich hab mir das mal im assembler angeschaut und dann muss ich ja alles erst falschrum drauflegen aber warum sollte ich es nicht richtigrum drauflegen und es werden die dten dann einfach von unten und nicht von oben geholt?

0

Aber das ist doch genau so, wie Du es haben willst, denk mal nach.

Das neueste ist immer hinten und dass älteste vorne. Also wird auch das älteste immer zuerst abgeholt. Es wird ja nicht von hinten(also vom letzten Platz) nach vorne abgelegt, sondern quasi "hinten dran", also immer auf dem ersten freien Platz.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von okarin
29.08.2016, 15:27

Ne der Stack funktioniert doch andersherum das älteste ist hinten und das neueste vorne und die daten werden von vorne wieder geholt

0

Deine Überschrift passt nicht.

Stack ist Last in First out.

Wie bei einem Geschirrstapel. Der nach dem Spülen zuletzt aufgelegte Teller wird als erster wieder benutzt.

Das, was du gerne haben möchtest, gibt es auch:

Die Queue (Warteschlange) funktioniert nach dem Prinzip First in First out (Wer zuerst kommt, mahlt zuerst)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von okarin
29.08.2016, 15:44

Ja sorry hab ich in dem Moment falsch gedacht. (Tue einfach so als ob da "warum nicht" steht statt "warum" dann ergibt alles wieder einen Sinn xD)

0

Was möchtest Du wissen?