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);
|