> Как реализовать функцию вставки и удаления элементов в структуре данных (iOS, Swift)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Meta

Стек: iOS, Swift

> Пример ответа

Для реализации вставки и удаления элементов в структуре данных на Swift (iOS) можно использовать класс с массивом в качестве хранилища. Вот пример для динамического массива:

SWIFT
class DynamicArray<T> {
private var elements: [T] = []
// Вставка элемента по индексу
func insert(_ element: T, at index: Int) {
guard index >= 0 && index <= elements.count else {
fatalError("Index out of bounds")
}
elements.insert(element, at: index)
}
// Удаление элемента по индексу
@discardableResult
func remove(at index: Int) -> T {
guard index >= 0 && index < elements.count else {
fatalError("Index out of bounds")
}
return elements.remove(at: index)
}
// Вставка в начало
func prepend(_ element: T) {
elements.insert(element, at: 0)
}
// Вставка в конец
func append(_ element: T) {
elements.append(element)
}
// Удаление первого элемента
@discardableResult
func removeFirst() -> T? {
guard !elements.isEmpty else { return nil }
return elements.removeFirst()
}
// Удаление последнего элемента
@discardableResult
func removeLast() -> T? {
return elements.popLast()
}
var count: Int { elements.count }
var isEmpty: Bool { elements.isEmpty }
}

Ключевые моменты:

  • Используются встроенные методы Array для вставки/удаления (O(n) для произвольной позиции, O(1) для конца)
  • Добавлены проверки границ для безопасности
  • @discardableResult позволяет игнорировать возвращаемое значение при удалении
  • Для iOS-приложений такая структура подходит для управления списками в UITableView/UICollectionView с анимациями

Для более сложных сценариев (частые вставки/удаления в середине) лучше использовать связный список или дерево.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью