Stack¶
Eine Stack ist eine Stapel von Werten nach dem LIFO-Prinzip1 verarbeitet werden.
Über die Methoden \Alvine\Types\Stack::isEmpty()
, \Alvine\Types\Stack::peek()
,
\Alvine\Types\Stack::pop()
, \Alvine\Types\Stack::count()
und \Alvine\Types\Stack::push($object)
wird der Stack verwaltet.
$stack = new \Alvine\Types\Stack();
$stack->push(new \Alvine\Types\StringType('Value 1'));
$stack->push(new \Alvine\Types\StringType('Value 2'));
$stack->push(new \Alvine\Types\StringType('Value 3'));
while(!$stack->isEmpty()) {
echo $stack->pop()."\n";
}
// → Value 2
// Value 2
// Value 1
Die Methode \Alvine\Types\Stack::peek()
holt den nächsten Wert vom Stack, lässt aber anders als die Methode
\Alvine\Types\Stack::pop()
den Wert auf dem Stapel.
$stack = new \Alvine\Types\Stack();
$stack->push(new \Alvine\Types\StringType('Value 1'));
$stack->push(new \Alvine\Types\StringType('Value 2'));
$stack->push(new \Alvine\Types\StringType('Value 3'));
echo $stack->peek();
echo $stack->peek();
echo $stack->peek();
// → Value 3
// Value 3
// Value 3