Сегодня мы собираемся открыть для себя 5 структур данных JavaScript, которые должен знать каждый разработчик. Итак, прежде всего, вы должны знать, что такое Структуры данных!

Структуры данных — это методы хранения и организации данных, упрощающие их изменение, навигацию и доступ.

Структуры данных используются почти во всех областях информатики. Это жизненно важно для эффективного решения реальных проблем. Потому что организация данных очень сильно влияет на производительность.

Итак, наша первая структура данных

Куча

Структура данных, соответствующая правилу Last In First Out (LIFO), представляет собой стек. Эта структура данных ограничивает способы манипулирования данными. Добавлять или удалять данные можно только сверху. Поскольку он называется Stack, мы можем представить его как реальный стек.

Основные операции

push() — отправка (сохранение) элемента в стек.

pop()удаление (доступ) элемента из стека.

peek() —получает верхний элемент данных стека, не удаляя его.

isFull() —проверка заполнения стека.

isEmpty() —проверить, пуст ли стек.

Реальным примером реализации стека является кнопка возврата назад. Когда мы нажимаем кнопку «Назад», мы получаем последнюю страницу, которую мы посетили. Он работает как метод стека pop.

Очередь

Это еще одна структура данных, похожая на стек, но она следует правилу первым поступил – первым обслужен(FIFO).

Вот на этой картинке мы видим очередь людей. Первый человек в очереди выйдет первым. И если новый человек войдет в очередь, он / она будет последним человеком в очереди. Таким образом, он следует стратегии очереди первым пришел – первым обслужен (FIFO).

Основные операции

  • enqueue() — добавить (сохранить) элемент в очередь.
  • dequeue() — удалить (доступ) элемент из очереди.
  • peek() — получает элемент в начале очереди, не удаляя его.
  • isfull() — проверяет, заполнена ли очередь.
  • isempty() — проверяет, пуста ли очередь.

Связанный список

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

Каждый элемент в связке представлен как узел. Узел содержит две вещи. Первый — это значение, а второй — указатель на следующий узел.

Это довольно сложная структура данных. Но это дает нам некоторые преимущества перед массивами.

Связанный список может легковставлять или удалятьузлы из списка без реорганизации всей структуры данных.

Связанный список лучше всего использовать, когда данные должны быть добавлены и удалены в быстрой последовательности из неизвестных местоположений.

Хэш-карта

Hash Map — это сложная структура данных, способная хранить большие объемы информации и эффективно извлекать определенные элементы. Эта структура данных основана на концепции пар ключ/значение, где «ключ» — это искомая строка, а «значение» — это данные, связанные с этим ключом.

Hash Map использует хеш-функцию для вычисления индекса в массиве сегментов или слотов, из которого можно найти нужное значение.

Операции с хэш-таблицей выполняются в два этапа:

  • Ключ преобразуется в целочисленный индекс с помощью хеш-функции.
  • Этот индекс определяет место записи пары "ключ-значение".

Hash Map обеспечивает быструю вставку, удаление и поиск, но не эффективен при поиске. Таким образом, мы могли бы использовать другие алгоритмы, такие как бинарный поиск для поиска.

Бинарное дерево поиска

Двоичное дерево поиска — это структура данных двоичного дерева на основе узлов. У него есть 3 вещи, которые следует учитывать:

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

Двоичное дерево поиска — это бинарное дерево, но оно должно удовлетворять некоторым условиям, чтобы быть бинарным деревом поиска.

  • Каждый узел имеет ноль, одного или двух потомков.
  • В каждом родительском узле значение левого дочернего ключа меньше значения ключа родительского узла.
  • Значение правого дочернего ключа больше, чем значение ключа родительского узла.
  • Не может быть повторяющихся узлов, т. е. никакие два узла не могут иметь одинаковое значение.

Двоичное дерево поиска имеет много преимуществ. Он может быстро и эффективно искать элемент. В бинарном дереве поиска вставленные узлы упорядочены немедленно. И это быстро в операции вставки и удаления.

Это все на сегодня. Надеюсь, вы получили некоторое представление о приведенных выше структурах данных. Спасибо за чтение и продолжайте учиться.