---
description: Здесь описаны только те моменты, которые автору поста требуют напоминания.
---

# Типы данных

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

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

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

## Хеш-таблицы

По сути это ассоциативный массив, который сейчас есть в каждом языке программирования.

Хеш -таблицы обеспечивают очень быстрое выполнение поиска, удаления и вставки.

## Время выполнения

| Задача                       | Массив | Связанный список | Хеш -таблицы            | Бинарное дерево |
| ---------------------------- | ------ | ---------------- | ----------------------- | --------------- |
| Получение (чтение)           | О(1)   | О(n)             | О(1) О(n) худший случай | О(log2n)        |
| Добавление \ Удаление        | О(n)   | О(1)             | О(1) О(n) худший случай | О(log2n)        |
| Вставка в произвольное место | О(n)   | О(n)             | О(1) О(n) худший случай | О(log2n)        |
| Поиск                        | О(n)   | О(n)             | О(1) О(n) худший случай | О(log2n)        |
|                              |        |                  |                         |                 |

## Графы

Вариант js, описание различных графов и основных алгоритмов по графам смотри [здесь](https://proglib.io/p/rasprostranennye-algoritmy-i-struktury-dannyh-v-javascript-grafy-2021-10-20).

##
