Hallo,
FIFO heißt ja "First In First Out", habe ich es richtig verstanden, dass
wenn ich einen Stack habe und ein Element hinzufüge, dass das am Anfang
hinzugefügt wird (weil "First In"). Und beim Auslesen am Anfang
ausgelesen wird (weil "First Out")?
Liege ich komplett daneben oder ist es richtig?
Danke
burgerohnealles
Nein, ein Stack ist ein Stapel. Wenn Du da 10 Dinge nacheinander drauf
legst, ist das letzte ganz oben und somit das, was Du als erstes wieder
bekommen kannst.
Ein FIFO ist so was wie ein Gleis bei der Modelleisenbahn. Du kannst 10
Züge drauf fahren lassen, und die kommen genau in der gleichen
Geschwindigkeit auch wieder raus.
Jonathan K. schrieb:> Liege ich komplett daneben oder ist es richtig?
Du liegst falsch. Bei einem Stack handelt es sich um ein LIFO (Last In
First Out).
Hallo!
Ein Stack ist kein FIFO.
Wenn du ein Element auf den Stack ablegst stapeln sich ja alle
nachfolgenden darüber. Daraus folgst das Element welches du als erstes
auf den Stack gelegt hast bekommst du als letztes wieder heraus. -> LIFO
(oder umgekehrt: Das Element das du als letztes auf den Stack gelegt
hast bekommst du wieder als erstes heraus).
L.g.
Nein, genau falsch.
FIFO kannst Du Dir wie ein Warteschlange (z.B. am Postschalter)
vorstellen. Zuerst stellt sich Person A an, dann Person B und dann
Person C. Bedient wird als erstes Person A, Person B als zweites und
zuletzt Person C. Derjenige, der zuerst angekommen ist (First In, also
hier Person A) wird als erstes bedient (First Out).
Ein Stack ist dagegen wie ein Stapel Papier. Du legst zuerst Blatt A auf
den Stapel, dann Blatt B und dann Blatt C. Jetzt entnimmst Du das
oberste Blatt wieder vom Stapel und hast Blatt C in der Hand. D.h. das
Blatt, das Du zuletzt auf den Stapel gelegt hast (Last In), nimmst Du
als erstes wieder vom Stapel (First Out). Ein Stack funktioniert also
nach dem LIFO-Prinzip.
Edit: Oh je, viel zu spät. :-)
Fabian O. schrieb:> FIFO kannst Du Dir wie ein Warteschlange (z.B. am Postschalter)> vorstellen. Zuerst stellt sich Person A an, dann Person B und dann> Person C. Bedient wird als erstes Person A, Person B als zweites und> zuletzt Person C. Derjenige, der zuerst angekommen ist (First In, also> hier Person A) wird als erstes bedient (First Out).>> Ein Stack ist dagegen wie ein Stapel Papier. Du legst zuerst Blatt A auf> den Stapel, dann Blatt B und dann Blatt C. Jetzt entnimmst Du das> oberste Blatt wieder vom Stapel und hast Blatt C in der Hand. D.h. das> Blatt, das Du zuletzt auf den Stapel gelegt hast (Last In), nimmst Du> als erstes wieder vom Stapel (First Out). Ein Stack funktioniert also> nach dem LIFO-Prinzip.
Ok. Sehr gut erklärt!
Aber wie nennt man dann das, wenn es z.B. nach dem FIFO-Prinzip, wie im
Beispiel mit der Warteschlange, geht?
Danke
burgerohnealles
Eine gängige Softwareimplementierung eines FIFOs wäre ein Ringpuffer,
falls Du das suchst.
Oder eben das Wort "FIFO" als Kurzform für "Pufferspeicher nach dem
FIFO-Prinzip". ;-)
Fabian O. schrieb:> Eine gängige Softwareimplementierung eines FIFOs wäre ein Ringpuffer,> falls Du das suchst.>> Oder eben das Wort "FIFO" als Kurzform für "Pufferspeicher nach dem> FIFO-Prinzip". ;-)
Ok. Danke. Ich habe nicht nach etwas speziellem gesucht, wollte einfach
wissen was das ist, weil das häufig in der Elektronik/Programmierung
vorkommt.
MfG
burgerohnealles
@ Jonathan K. (burgerohnealles)
>Aber wie nennt man dann das, wenn es z.B. nach dem FIFO-Prinzip, wie im>Beispiel mit der Warteschlange, geht?
Siehe FIFO. Man könnte ihn auch Kurzzeitpuffer, Zwischenpuffer,
Spitzlastpuffer oder Kartoffelpuffer nennen ;-)
Es mag untergegangen sein (wurde weiter oben schon erwähnt)
LIFO verhält sich zu Stack so wie
FIFO zu Queue (sprich: 'Kju')
Queue ist einfach nur englisch für Warteschlange.
Falk Brunner schrieb:> @ Jonathan K. (burgerohnealles)>> Siehe FIFO. Man könnte ihn auch Kurzzeitpuffer, Zwischenpuffer,> Spitzlastpuffer oder Kartoffelpuffer nennen ;-)
Kartoffelpuffer sind eher ein Beispiel von LIFO, weil man die, wenn sie
überlappend auf dem Teller präsentiert werden auch eher von oben nach
unten weg futtert...
SCNR :)
Ulrich P. schrieb:> Kartoffelpuffer sind eher ein Beispiel von LIFO, weil man die, wenn sie> überlappend auf dem Teller präsentiert werden auch eher von oben nach> unten weg futtert...
Das ist eine Sache der Betrachtungsweise...
Aus der Sicht des Verdauungstraktes handelt es sich eindeutig um ein
FIFO.
> SCNR :)
Dito.