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

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

Ответ

В JavaScript объекты можно использовать для создания различных структур данных:

  1. Хэш-таблица/Словарь - для быстрого доступа по ключу:
const dict = { key: 'value' };
  1. Стек (LIFO):
const stack = {
  items: [],
  push(item) { this.items.push(item) },
  pop() { return this.items.pop() }
};
  1. Очередь (FIFO):
const queue = {
  items: [],
  enqueue(item) { this.items.push(item) },
  dequeue() { return this.items.shift() }
};
  1. Граф/Дерево:
const tree = {
  value: 'root',
  children: [
    { value: 'child1', children: [] },
    { value: 'child2', children: [] }
  ]
};
  1. Связный список:
const list = {
  value: 1,
  next: {
    value: 2,
    next: null
  }
};

Объекты в JS достаточно гибкие, чтобы эмулировать большинство классических структур данных, хотя для сложных структур лучше использовать специализированные классы.