Как организовать чередь с функцией вставки элементов на PHP? Суть вопроса такова: появилась необходимость в абстрактном типе FIFO с возможно "вклинивать" элементы в любую позицию. Подскажите идеи, как реализовать на PHP не используя сторонние готовые скрипты и расширения. Либо подскажите хорошо написанные скрипты из которых можно взять реализацию.
Что касается деталей - количество элементов, которые будут хранится в стеке небольшое, не больше сотни, но предполагается обработка большого количества разных контейнеров.

21 Авг 2019 в 07:09
160 +1
1
Ответы
1

Для реализации очереди с возможностью вставки элементов в любую позицию на PHP, можно создать класс Queue со следующими методами:

class Queue {
private $queue;
public function __construct() {
$this->queue = [];
}
public function enqueue($element) {
array_push($this->queue, $element);
}
public function insert($element, $position) {
array_splice($this->queue, $position, 0, $element);
}
public function dequeue() {
return array_shift($this->queue);
}
public function getSize() {
return count($this->queue);
}
}

Пример использования:

$queue = new Queue();
$queue->enqueue(1);
$queue->enqueue(2);
$queue->insert(3, 1);
echo $queue->dequeue(); // Output: 1
echo $queue->dequeue(); // Output: 3
echo $queue->dequeue(); // Output: 2

Этот пример реализует очередь с добавлением (enqueue), вставкой элементов (insert) и извлечением (dequeue) элементов. В этом случае, метод insert вставляет элемент в указанную позицию в очереди.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир