Реализация стека на PHP
Опубликовано 22 марта, 2023 - 15:15 пользователем Гончаров Артём
Лекция:
Реализация стека на основе массивов в функциональном стиле при помощи функций push() и pop(). Демонстрация работы со стеком.
<?php function push(&$stack, $val) { array_push($stack, $val); //запись в конец массива с динамическим изменением размера } function pop(&$stack) { if (count($stack) == 0) return null; //стек пуст $ans = $stack[count($stack)-1]; //извлекаем последний элемент массива $stack = array_slice($stack, 0, count($stack)-1); //обрезаем последний элемент массива return $ans; } //---------------------------------------------------- $stack = ["initial"]; //создаём стек echo "Initial: "; print_r($stack); //автоматический вывод массива echo "<br><br>"; echo "Push 'new': "; push($stack, "new"); //заносим строку "new" в стек print_r($stack); echo "<br><br>"; echo "Pop: ".pop($stack).", "; //извлекаем верхний элемент ("new") из стека print_r($stack); echo "<br><br>"; echo "Pop: ".pop($stack).", "; //извлекаем верхний элемент ("initial") из стека print_r($stack); echo "<br><br>"; $pop_val = pop($stack); echo "Pop: ".(isset($pop_val) ? $pop_val : "NULL"); //пытаемся извлечь элемент из пустого стека, получаем NULL ?>
Вывод:
Initial: Array ( [0] => initial ) Push 'new': Array ( [0] => initial [1] => new ) Pop: new, Array ( [0] => initial ) Pop: initial, Array ( ) Pop: NULL
Направление: