Существуют следующие основные структуры данных:
1. **Массив** (он же вектор, он же список, он же динамический массив, он же последовательность) - структура данных, при которой в памяти последовательно записываются данные одного типа и, следовательно, одного размера. Получить элемент из массива можно с помощью индекса, сместившись на данное количество элементов от начала массива. Для добавления элемента в массив его необходимо создать заного (если в выделенном под массив блоке памяти не осталось свободного места).
2. **Объект** (он же кортеж, он же структура) - структура данных, при которой хранится фиксированное число элементов различных типов, последовально записанных и выравненных в памяти. Получить элемент из объекта можно обратившись к его идентификатору, при этом компилятор должен знать его смещение он начала объекта. Добавить элемент в объект нельзя.
3. **Связный список** - структура данных, при которой хранится несколько хаотично разбросанных по памяти блоков, содержащих элемент и ссылку (указатель) на следующий (и, возможно, предыдущий) элемент. Получить элемент из кортеж пожно с помощью его индекса, последовательно идя по цепочке элементов. Дла добавления элемента в связный список нужно изменить ссылки ближайших (по индексам) к нему элементам.
4. **Хэш таблица** (она же словарь, она же map, она же таблица) - структура данных, при которой хранятся пары элементов в "дырявом" массиве таким образом, чтобы найти значение по ключу занимало в среднем фиксированное время. Сложные ключи (напимер, строки) обычно хешируются.
5. **Дерево** (илм, если ребёнок может иметь несколько родителей - граф) - структура данных, при которой каждый элемент хранит массив или объект ссылок (указателей) на своих "детей", при этом элементы разбросаны в памяти хаотично.
6. **Бинарное дерево поиска** - дерево, в в каждом элементе которого хранятся две ссылки - на элемент, который меньше, и на элемент, который больше. Поиск в таком дереве в среднем занимает логарифмическое время, вместо линейного в массиве.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence