Javascript-Arrays als Speicher

Stapel und Warteschlangen mit JS-Arrays

Die Theorie der Daten-Speicher unterscheidet die beiden Typen "Stapel" (stack, first in - last out) und "Warteschlange" (queue, first in - first out) Alle modernen Programmiersprachen bieten die Möglichkeit, solche Speicher mit Array-Funktionen zu realisieren.
Javascript ECMAScript für HTML und XML (Arrays)
Stapel Stack-Speicher: first in - last out
Warteschlange Queue-Speicher: first in - first out
Verwandte Themen Array @ Datenspeicher in PHP, Perl

Arrays als Datenspeicher

Stapel (stack)

Ein Stapel-Speicher wird aus Elementen aufgeschichtet. Man kann immer nur das zuletzt aufgeschichtete Element herunternehmen, das erste (unterste) Element kann als letztes wieder entnommen werden. Ein Stack arbeitet nach dem Prinzip 'first in - last out' und umgekehrt.
Ein bekanntes Beispiel ist das Spiel 'Turm von Hanoi', in dem Scheiben zwischen verschiedenen Stapeln umgeschichtet werden müssen.

Ein Array dient als Stapel-Speicher. Die Funktion push dient zum Aufschichten eines Elements, die Funktion pop zum Herunternehmen.

Warteschlange (queue)

Eine Warteschlange (Förderband, queue, conveyor band, shift register) gibt die darauf enthaltenen Elemente in der gleichen Reihenfolge zurück, in welcher sie gespeichert wurden. Es arbeitet nach dem Prinzip 'first in - first out'.
Ein bekanntes Beispiel ist eine Haltestelle: Die ankommenden Fahrgäste stellen sich an und bilden eine anwachsende Reihe. Wenn ein Bus kommt, dann steigen die Passagiere in der gleichen Reihenfolge ihres Eintreffens ein - zumindest in der Theorie . .

Ein Array dient als Warteschlangen-Speicher. Die Funktion push dient zum Anreihen eines Elements, die Funktion shift zum Herausnehmen.

Funktion push

Fügt alle Elemente der Liste in () am Ende eines Arrays an. Die Liste kann skalare Variable ebenso enthalten wie Arrays. Anwendung von push auf eine skalare Variable löst einen Fehler aus.
Im Beispiel werden die beiden Zahlen als neue Elemente an das Array k4 angefügt.
Die Funktion dient zusammen mit pop zur Realisierung eines Stack-Speichers,
zusammen mit shift zur Realisierung eines Warteschlangen-Speichers.

k = new Array();
k.push(11);
k.push(22,33);
Danach enthält das Array k die Elemente
(11, 22, 33)

Funktion pop

Entfernt das letzte Element aus einem Array und gibt es zurück.
Das Beispiel verkürzt Array k um 1 Element und gibt t=33 zurück.
Bei Anwendung von pop auf ein leeres Array wird der Wert undefinded zurückgegeben.
Die Funktion dient zusammen mit push zur Realisierung eines Stapel-Speichers.

var t = k.pop();

Funktion shift

Entfernt das erste Element aus einem Array und gibt es zurück.
Das Beispiel verkürzt Array k um 1 Element und gibt t=11 zurück.
Bei Anwendung von shift wird der Index aller vorhandenen Elemente um 1 vermindert.
Bei Anwendung von shift auf ein leeres Array wird der Wert undefinded zurückgegeben.
Die Funktion dient zusammen mit push zur Realisierung eines Warteschlangen-Speichers.

var t = k.shift();

Funktion unshift

Fügt alle Elemente der Liste in () am Anfang eines Arrays ein. Die Liste kann skalare Variable ebenso enthalten wie Arrays. unshift wird für die Realisierung üblicher Speicher-Arrays nicht benötigt, sondern dient als Werkzeug für Sonderfälle.
Bei Anwendung von unshift wird der Index aller vorhandenen Elemente um +1 erhöht.

k.unshift(99);