Стек C # с примером

Содержание:

Anonim

Что такое стек в C #?

Стек - это специальная коллекция, которая представляет концепцию LIFO (последний пришел - первый ушел). Чтобы сначала понять LIFO, давайте рассмотрим пример. Представьте себе стопку книг, каждая из которых стоит одна на другой.

В случае с книгами концепция «последний пришел - первый ушел» означает, что из стопки книг может быть удалена только самая верхняя книга. Невозможно удалить книгу между ними, потому что это нарушит настройку стопки.

Следовательно, в C # стек также работает таким же образом. Элементы добавляются в стопку один поверх другого. Процесс добавления элемента в стек называется операцией выталкивания. Чтобы удалить элемент из стека, вы также можете удалить самый верхний элемент стека. Эта операция известна как поп.

Давайте подробнее рассмотрим операции, доступные для коллекции Stack.

Объявление стека

Стек создается с помощью типа данных стека. Ключевое слово «новый» используется для создания объекта стека. Затем объект присваивается переменной st.

Stack st = new Stack()

Добавление элементов в стек

Метод push используется для добавления элемента в стек. Общий синтаксис оператора приведен ниже.

Stack.push(element)

Удаление элементов из стека

Метод pop используется для удаления элемента из стека. Операция pop вернет самый верхний элемент стека. Общий синтаксис оператора приведен ниже.

 Stack.pop()

Считать

Это свойство используется для получения количества элементов в стеке. Ниже приведен общий синтаксис этого оператора.

Stack.Count

Содержит

Этот метод используется для проверки наличия элемента в стеке. Ниже приведен общий синтаксис этого оператора. Оператор вернет true, если элемент существует, иначе он вернет значение false.

Stack.Contains(element)

Теперь посмотрим, как это работает на уровне кода. Весь приведенный ниже код будет записан в наше консольное приложение. Код будет записан в наш файл Program.cs.

В приведенной ниже программе мы напишем код, чтобы увидеть, как мы можем использовать вышеупомянутые методы.

Пример 1

В этом примере мы увидим

  • Как создается стек.
  • Как отображать элементы стека и использовать методы 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();}}}

Пояснение к коду: -

  1. Первый шаг используется для объявления стека. Здесь мы объявляем "st" как переменную для хранения элементов нашего стека.
  2. Затем мы добавляем 3 элемента в наш стек. Каждый элемент добавляется методом Push.
  3. Теперь, поскольку к элементам стека нельзя получить доступ через позицию индекса, как к списку массивов, нам нужно использовать другой подход для отображения элементов стека. Объект (obj) - это временная переменная, которая объявляется для хранения каждого элемента стека. Затем мы используем оператор foreach для просмотра каждого элемента стека. Для каждого элемента стека значение присваивается переменной obj. Затем мы используем команду Console.Writeline для вывода значения на консоль.
  4. Мы используем свойство Count ( st.count ), чтобы получить количество элементов в стеке. Это свойство вернет число. Затем мы выводим это значение на консоль.
  5. Затем мы используем метод Contains, чтобы увидеть, присутствует ли значение 3 в нашем стеке. Это вернет либо истинное, либо ложное значение. Затем мы выводим это возвращаемое значение на консоль.

Если приведенный выше код введен правильно и программа запущена, отобразится следующий вывод.

Выход:

Из вывода мы видим, что отображаются элементы стека. Кроме того, отображается значение True, чтобы сказать, что значение 3 определено в стеке.

Примечание . Вы заметили, что первым отображается последний элемент, помещенный в стек. Это самый верхний элемент стека. Количество элементов стека также отображается в выводе.

Пример 2

Теперь давайте посмотрим на функцию «удалить». Мы увидим код, необходимый для удаления самого верхнего элемента из стека.

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();}}}

Пояснение к коду: -

  1. Здесь мы просто запускаем метод pop, который используется для удаления элемента из стека.

Если приведенный выше код введен правильно и программа запущена, отобразится следующий вывод.

Выход:

Мы видим, что элемент 3 был удален из стека.

Резюме

  • Стек основан на концепции «последний пришел - первым ушел». Операция добавления элемента в стек называется операцией выталкивания. Операция удаления элемента в стек называется операцией выталкивания.