О разделе
Раздел про способы хранения и доступа к данным в памяти — массив, связный список, стек, очередь, дерево, хеш-таблица — когда что выбирать и какая сложность операций. Таблица O(·) по операциям — в реализации; теория классов сложности — в Нотация Большое O; почему list и set в Python дают разную сложность — Lab / Big-O — 1128. Это опора для алгоритмов и для понимания коллекций в языках программирования.
Идеи даются сначала на русском псевдокоде (АЛГОРИТМ, для, вернуть) — см. алгоритмический справочник в главе про реализацию; затем — синтаксис List / dict / Map в разделах языков.
Сначала (общая база): Данные и информация · Алгоритмы
Рекомендуемый порядок
| Шаг | Статья | Зачем |
|---|---|---|
| 0 | Базовая информатика — программирование | Типы данных, линейные/нелинейные структуры (школа) |
| 1 | Структуры данных | обзор, аналогии, таблицы |
| 2 | Реализация и O(·) | массив, список, стек, хеш; §7 — B- и B⁺-дерево; §10 — skip list; §11.2 — индексы СУБД (хеш, bitmap, LSM, инвертированный); обзор для БД — пять структур индексов |
| 3 | История · Геометрия | по желанию |
| 4 | Итоги · чек-лист | закрепление |
Дальше — коллекции в языках (таблица ниже). Для маршрута ООП — Коллекции. Затем продвинутые операции с данными.
Практика после теории по языкам:
- Python (ЕГЭ, олимпиада) — Lab / 1122, коллекции
list,dict,set - C++ (контест, STL) — Lab / 1125, Работа с данными; разбор ручных реализаций — TheAlgorithms/C-Plus-Plus/data_structures
- Pascal (школа) — Lab / 1140, массивы, поиск, префиксы
Коллекции в разделах языков
| Язык | Статья | Что внутри |
|---|---|---|
| Python | Коллекции | list, tuple, dict, set |
| Java | Коллекции | List, Set, Map, Queue |
| C# | Коллекции | List, Dictionary, HashSet |
| JavaScript | Массивы | Array, Map, Set |
| Kotlin | Коллекции | List, Map, Sequence |
| Go | Типы, slice и map | slice, map |
| C++ | Работа с данными, Lab / 1125 | vector, map, unordered_map; олимпиадные шаблоны; учебный код — TheAlgorithms/data_structures |
| Rust | Типы и коллекции | Vec, HashMap |
| Swift | Данные и коллекции | Array, Dictionary, Set |
| PHP | Типы данных | array как список и словарь |
| Ruby | Типы | Array, Hash |
| Pascal | Типы данных | array, record, set; практика — Lab / 1140 |
Структуры данных
Способы организации данных в памяти. Определение и классификация.
История развития структур данных
Структура данных - организация информации в памяти для эффективных операций и связь с выбором алгоритмов.
Геометрические структуры данных
R-дерево - структура для многомерных объектов и пространственного поиска через иерархию ограничивающих прямоугольников.
Основные структуры данных и их реализация
Массивы, списки, деревья, графы. Фундаментальные структуры данных.
Структуры данных — итоги
Итоги раздела «Структуры данных» — FAQ и краткие ответы по теме.
Структуры данных — чек-лист
Вы понимаете, как красно-чёрное дерево используется в планировщике задач Linux CFS.
Структуры данных — о разделе
Массивы, списки, стеки, очереди, деревья, хеш-таблицы — теория и реализация; маршрут раздела "Структуры данных" в энциклопедии Вселенная IT.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Базы данных — Базовые операции с данными — о разделе, Основы баз данных — о разделе, Данные и информация — о разделе, SQL — о разделе, NoSQL — о разделе, Управление реляционными СУБД — о разделе.
Аналитика данных — Данные и информация — о разделе, Основы баз данных — о разделе, SQL — о разделе, NoSQL — о разделе, Продвинутые операции с данными — о разделе, Анализ данных — о разделе.