Назад к вопросам
Junior
160
questionbank

Какие существуют структуры данных?

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) // Доступ по ключу