Ответ
Очередь (Queue) — это абстрактный тип данных, работающий по принципу FIFO (First-In-First-Out): первый добавленный элемент будет первым извлечённым.
Основные операции:
enqueue(_:)— добавление элемента в конец очереди (tail).dequeue()— удаление и возврат элемента из начала очереди (head).peek()/front— просмотр первого элемента без удаления.isEmpty— проверка на пустоту.
Реализация на Swift:
struct Queue<T> {
private var elements: [T] = []
mutating func enqueue(_ element: T) {
elements.append(element)
}
mutating func dequeue() -> T? {
return elements.isEmpty ? nil : elements.removeFirst()
}
func peek() -> T? {
return elements.first
}
var isEmpty: Bool {
return elements.isEmpty
}
}
// Использование:
var queue = Queue<Int>()
queue.enqueue(1)
queue.enqueue(2)
print(queue.dequeue()) // 1
print(queue.peek()) // 2
Применение в iOS/macOS:
DispatchQueue— управление задачами в Grand Central Dispatch.OperationQueue— очередь операций с зависимостями.- Обработка сообщений, задач печати, буферизация ввода-вывода.
Оптимизация: Для эффективного dequeue() вместо removeFirst() (O(n)) используют кольцевой буфер или два стека.