# Структуры данных

## Содержание

- SplDoublyLinkedList
- SplStack
- SplQueue
- SplHeap
- SplMaxHeap
- SplMinHeap
- SplPriorityQueue
- SplFixedArray
- ArrayObject
- SplObjectStorage

SPL предоставляет набор стандартных структур данных. Они сгруппированы здесь по своей базовой реализации, которая обычно определяет их общую область применения.

## Двусвязные списки

Двусвязный список (DLL) - это список узлов, связанных в обоих направлениях друг с другом. Операции итератора, доступ к обоим концам, добавление или удаление узлов стоимостью O(1), когда основная структура является DLL. Следовательно, они обеспечивает хорошую реализацию для стеков и очередей.

- SplDoublyLinkedList
  - SplStack
  - SplQueue

## Кучи

Кучи - это древовидные структуры, которые следуют свойствам кучи: каждый узел больше или равен своим потомкам, при этом для сравнения используется внедрённый метод сравнения, который является общим для всей кучи.

- SplHeap
  - SplMaxHeap
  - SplMinHeap
- SplPriorityQueue

## Массивы

Массивы – структуры, которые хранят данные в непрерывном виде, доступные через индексы.

> Замечание: Не путайте их с типом PHP array. Массивы PHP являются упорядоченными хеш-таблицами. Однако SPL предоставляет класс ArrayObject, чтобы обернуть PHP-массивы в объект.

- SplFixedArray

## Карта

Карта - это структура данных, содержащая пары ключ-значение. Массивы PHP можно рассматривать как карты, отображающие целые/строковые данные в их значения. SPL предоставляет карту, отображающую объекты к данным. Эта карта также может быть использована как множество объектов.

- SplObjectStorage

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open