Структуры данных на PHP: Очереди

August 20, 2014

Если вы когда-то стояли в очереди, то знаете, что прежде всего будут обслуживаться те, кто стоит перед вами. В мире программирования, очередь - это ещё одна часто распространённая структура данных, которая работает по принципу FIFO - “первым пришёл - первым ушёл”.

Основные операции с очередями:

  • init – создание очереди.
  • enqueue – добавление объекта в конец очереди.
  • dequeue – удалить объект из начала очереди.
  • isEmpty – проверка очереди на наличие элементов.


Для того чтобы создать очередь в PHP можно унаследовать свой класс от SplQueue. Давайте сделаем это:

class ReadingList extends SplQueue
{
}
$myBooks = new ReadingList();

// добавляем элементы в очередь
$myBooks->enqueue('A Game of Thrones');
$myBooks->enqueue('A Clash of Kings');
$myBooks->enqueue('A Storm of Swords');


SplDoublyLinkedList имплементирует интерфейс ArrayAccess так, что добавлять элементы вы можете точно так же, как при использовании bothSplQueue и SplStack:

$myBooks[] = 'A Feast of Crows';
$myBooks[] = 'A Dance with Dragons';

Удаление элементов:

echo $myBooks->dequeue() . "n"; // 'A Game of Thrones'
echo $myBooks->dequeue() . "n"; // 'A Clash of Kings'

Комментарии

comments powered by Disqus