Intern
115
questionbank
Что такое стек?
Ответ от нейросети
sobes.tech AI
Стек — это структура данных, работающая по принципу LIFO (Last-In, First-Out). Элементы добавляются и удаляются только с одного конца, называемого вершиной стека.
Основные операции:
- Push: Добавление элемента на вершину стека.
- Pop: Удаление и возврат элемента с вершины стека.
- Peek: Возврат элемента с вершины стека без его удаления.
- IsEmpty: Проверка на пустоту стека.
Примеры использования в C#:
- Управление вызовами функций (стек вызовов).
- Обработка выражений (например, преобразование инфиксной записи в постфиксную).
- Реализация алгоритмов обхода графов и деревьев (DFS).
- Отмена/повтор действий в приложениях.
В .NET есть класс Stack<T> в пространстве имен System.Collections.Generic.
// Создание стека целых чисел
System.Collections.Generic.Stack<int> numbers = new System.Collections.Generic.Stack<int>();
// Добавление элементов
numbers.Push(1);
numbers.Push(2);
numbers.Push(3); // Вершина стека
// Получение верхнего элемента без удаления
int topElement = numbers.Peek(); // topElement будет 3
// Удаление элементов
int poppedElement = numbers.Pop(); // poppedElement будет 3
poppedElement = numbers.Pop(); // poppedElement будет 2
// Проверка на пустоту
bool isEmpty = numbers.Count == 0; // isEmpty будет false
// Удаление последнего элемента
poppedElement = numbers.Pop(); // poppedElement будет 1
// Проверка на пустоту после удаления всех элементов
isEmpty = numbers.Count == 0; // isEmpty будет true