Назад к вопросам
Junior
86
questionbank
Что такое структура данных стек и как она работает?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Стек — это линейная структура данных, работающая по принципу LIFO (Last-In, First-Out), где последний добавленный элемент является первым извлекаемым.
Основные операции:
- Push: Добавление элемента в верхнюю часть стека.
- Pop: Удаление и возврат элемента из верхней части стека.
- Peek/Top: Просмотр элемента на вершине стека без удаления.
- isEmpty: Проверка на пустоту стека.
- size: Получение количества элементов в стеке.
Пример реализации на Swift:
// Простейшая реализация стека с использованием массива
struct Stack<Element> {
private var elements: [Element] = []
// Добавление элемента
mutating func push(_ element: Element) {
elements.append(element)
}
// Удаление и возврат элемента
mutating func pop() -> Element? {
elements.popLast() // popLast удобен для LIFO
}
// Просмотр верхнего элемента
func peek() -> Element? {
elements.last // last удобен для LIFO
}
// Проверка на пустоту
var isEmpty: Bool {
elements.isEmpty
}
// Размер стека
var size: Int {
elements.count
}
}
// Пример использования
var myStack = Stack<Int>()
myStack.push(1)
myStack.push(2)
myStack.push(3)
print(myStack.pop() ?? "Стек пуст") // Вывод: 3
print(myStack.peek() ?? "Стек пуст") // Вывод: 2
print(myStack.size) // Вывод: 2
print(myStack.isEmpty) // Вывод: false
Применение в iOS-разработке:
- Управление навигацией в UINavigationController (pushViewController, popViewController).
- Стек вызовов функций.
- Обработка истории действий (Undo/Redo).
- Разбор выражений (например, при работе с компиляторами).