В чем разница между Queue и Linked List

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

Ответ

Queue — это абстрактный тип данных (FIFO), где элементы добавляются в конец и удаляются из начала. Основные операции: enqueue (добавить) и dequeue (удалить).

Linked List — это структура данных, состоящая из узлов, где каждый узел содержит данные и ссылку на следующий узел. Поддерживает операции вставки/удаления в любом месте.

Разница:

  • Queue — это поведение (интерфейс), а Linked List — реализация (можно использовать для реализации Queue).
  • Queue ограничен правилами FIFO, Linked List — гибкая структура.

Пример:

// Queue на Linked List
class Node {
  constructor(value) { this.value = value; this.next = null; }
}

class Queue {
  constructor() { this.head = null; this.tail = null; }

  enqueue(value) {
    const node = new Node(value);
    if (!this.head) this.head = node;
    else this.tail.next = node;
    this.tail = node;
  }
}