Стек C# с примерами Push & Pop
Что такое стек в C#?
Стек — это особый набор случаев, который представляет собой концепцию «последним пришел — первым вышел» (LIFO). Чтобы сначала понять LIFO, давайте рассмотрим пример. Представьте себе стопку книг, каждая из которых лежит друг на друге.
В случае с книгами принцип «последним пришел — первым вышел» означает, что из стопки книг можно удалить только самую верхнюю книгу. Невозможно удалить книгу из промежутка, потому что это нарушит настройку стопки.
Отсюда в C#, стек работает таким же образом. Элементы добавляются в стек один поверх другого. Процесс добавления элемента в стек называется операцией push. Чтобы удалить элемент из стека, вы также можете удалить самый верхний элемент стека. Эта операция известна как pop.
Давайте рассмотрим операции, доступные для коллекции Stack, более подробно.
Объявление стека
Стек создается с помощью типа данных Stack. Ключевое слово «new» используется для создания объекта стека. Затем объект присваивается переменной st.
Stack st = new Stack()
Добавление элементов в стек
Метод push используется для добавления элемента в стек. Общий синтаксис оператора приведен ниже.
Stack.push(element)
Удаление элементов из стека
Метод pop используется для удаления элемента из стека. Операция pop вернет самый верхний элемент стека. Общий синтаксис оператора приведен ниже.
Stack.pop()
Количество
Это свойство используется для получения количества элементов в стеке. Ниже приведен общий синтаксис этого оператора.
Stack.Count
Комплект
Этот метод используется для проверки наличия элемента в стеке. Ниже приведен общий синтаксис этого оператора. Оператор вернет true, если элемент существует, в противном случае он вернет значение false.
Stack.Contains(element)
Теперь давайте посмотрим, как это работает на уровне кода. Весь приведенный ниже код будет записан в нашу Консольное приложение. Код будет записан в наш файл Program.cs.
В приведенной ниже программе мы напишем код, чтобы увидеть, как мы можем использовать вышеупомянутые методы.
Пример 1: Метод Stack.Push()
В этом примере мы увидим
- Как создается стек.
- Как отображать элементы стека и использовать методы Count и Contain.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); foreach (Object obj in st) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the stack " +st.Count); Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3)); Console.ReadKey(); } } }
Объяснение кода: -
- Первый шаг используется для объявления стека. Здесь мы объявляем «st» как переменную для хранения элементов нашего стека.
- Затем мы добавляем в наш стек 3 элемента. Каждый элемент добавляется с помощью метода Push.
- Теперь, поскольку к элементам стека нельзя получить доступ через позицию индекса, например список массивов, нам нужно использовать другой подход для отображения элементов стека. Объект (obj) — это временная переменная, объявленная для хранения каждого элемента стека. Затем мы используем оператор foreach для просмотра каждого элемента стека. Для каждого элемента стека значение присваивается переменной obj. Затем мы используем команду Console.Writeline для отображения значения на консоли.
- Мы используем свойство Count (количество ул.), чтобы получить количество элементов в стеке. Это свойство вернет число. Затем мы отображаем это значение на консоли.
- Затем мы используем метод contains, чтобы проверить, присутствует ли значение 3 в нашем стеке. Это вернет либо истинное, либо ложное значение. Затем мы отображаем это возвращаемое значение на консоли.
Если приведенный выше код введен правильно и программа запущена, будет отображен следующий вывод.
Вывод:
Из вывода мы видим, что отображаются элементы стека. Кроме того, отображается значение True, означающее, что значение 3 определено в стеке.
Внимание: Вы заметили, что первым отображается последний элемент, помещенный в стек. Это самый верхний элемент стека. В выходных данных также отображается количество элементов стека.
Пример 2: Метод Stack.Pop()
Теперь давайте посмотрим на функцию «удалить». Мы увидим код, необходимый для удаления самого верхнего элемента из стека.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadKey(); } } }
Объяснение кода: -
- Здесь мы просто вызываем метод pop, который используется для удаления элемента из стека.
Если приведенный выше код введен правильно и программа запущена, будет отображен следующий вывод.
Вывод:
Мы видим, что элемент 3 был удален из стека.
Резюме
- Стек основан на принципе «последним пришел — первым вышел». Операция добавления элемента в стек называется операцией push. Операция удаления элемента в стек называется операцией pop.