Какие существуют структуры данных?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Массивы, списки, стеки, очереди, деревья, графы, хеш-таблицы.
Массив: Коллекция элементов одного типа, хранящихся в смежных ячейках памяти. Доступ по индексу.
Список: Последовательная коллекция элементов. Могут быть односвязными, двухсвязными. Добавление/удаление в середине эффективнее, чем в массиве.
Стек: Структура LIFO (Last-In, First-Out). Операции: push (добавить), pop (удалить из конца), peek (посмотреть верхний элемент).
Очередь: Структура FIFO (First-In, First-Out). Операции: enqueue (добавить в конец), dequeue (удалить из начала), peek (посмотреть первый элемент).
Дерево: Иерархическая структура данных. Корень, узлы, потомки. Пример: двоичное дерево поиска.
Граф: Набор вершин (узлов), соединенных ребрами. Может быть ориентированным или неориентированным, взвешенным или невзвешенным.
Хеш-таблица: Коллекция пар ключ-значение. Использует хеш-функцию для быстрого доступа (в среднем). Возможны коллизии.
Примеры использования в iOS:
- Массивы:
Array - Списки: нет встроенного класса, реализуются на основе массивов или пользовательских структур
- Стеки/Очереди: реализуются на основе массивов или списков
- Деревья: используются во фреймворках, например, в UI (иерархия представлений)
- Графы: для представления связей, например сетевых графов
- Хеш-таблицы:
Dictionary,Set
// Пример массива
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Доступ по индексу
// Пример словаря (хеш-таблицы)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Доступ по ключу