Какие структуры данных можно создать поверх массива

«Какие структуры данных можно создать поверх массива» — вопрос из категории Алгоритмы, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Массивы — это база для многих структур данных. Вот основные:

Стек (LIFO)
Добавление и удаление только с конца.

const stack = [];
stack.push(1); // [1]
stack.pop();   // []

Очередь (FIFO)
Добавление в конец, удаление из начала (но shift() неэффективен для больших массивов).

const queue = [];
queue.push(1);  // [1]
queue.shift();  // []

Дек (двусторонняя очередь)
Можно добавлять/удалять с обоих концов (но лучше использовать специальные структуры).

Связный список
Эмулируется через массив объектов с указателями на next/prev, но обычно реализуется отдельно.

Куча (Heap)
Для приоритетных очередей, сортировка при вставке/удалении.

Матрица/Граф
Многомерные массивы или массивы объектов для представления связей.

Хэш-таблица
Через массив + хэш-функцию, но коллизии усложняют реализацию.

Примечание: В JS массивы уже динамические и гибридные (могут работать как хэш-таблицы), но для сложных структур лучше использовать специализированные классы или библиотеки.