Что такое стек
"стек" (stack) — это тип структуры данных, который работает по принципу "последний пришёл — первый вышел" (Last In, First Out — LIFO). Этот принцип означает, что последние добавленные элементы будут извлечены из стека первыми. Стек можно представить как стопку тарелок: вы можете добавлять новые тарелки на верх стопки и также снимать верхнюю тарелку, но доступ к тарелкам, находящимся в середине стопки, без снятия верхних слоёв, невозможен.
Основные операции со стеком
- Push: добавление элемента на вершину стека.
- Pop: удаление и возвращение элемента с вершины стека.
- Peek: возвращает элемент на вершине стека без его удаления.
- IsEmpty: проверка стека на пустоту.
Стеки широко используются в программировании для решения множества задач, включая:
- Обработка вызовов функций/процедур: Используется для отслеживания точек входа и выхода из функций во время выполнения программы.
- Алгоритмы обратной полский нотации: Его использование для вычисления арифметических выражений, записанных в постфиксной форме.
- Откат операций: в редакторах, где последние изменения можно отменить в обратном порядке.
```csharp
using System;
using System.Collections.Generic;
public class SimpleStack
{
private Stack<int> stack = new Stack<int>();
public void Push(int number)
{
stack.Push(number);
Console.WriteLine($"Pushed {number} to stack.");
}
public int Pop()
{
int number = stack.Pop();
Console.WriteLine($"Popped {number} from stack.");
return number;
}
public int Peek()
{
int number = stack.Peek();
Console.WriteLine($"Peeked at {number} on stack.");
return number;
}
public bool IsEmpty()
{
return stack.Count == 0;
}
}
class Program
{
static void Main()
{
var myStack = new SimpleStack();
myStack.Push(1);
myStack.Push(2);
myStack.Push(3);
myStack.Peek();
myStack.Pop();
myStack.Pop();
myStack.Pop();
}
}
```
Стек — это структура данных, работающая по принципу LIFO, что означает, что последний сохранённый элемент будет первым извлечённым. Этот тип структуры используется во многих аспектах программирования, включая управление памятью, парсинг выражений и откат изменений.
April 25, 2024, easyoffer