Учебники

17) стек C # с примером

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

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

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

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

Давайте рассмотрим операции, доступные для коллекции 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.

C # Коллекции

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. Теперь, так как элементы стека не могут быть доступны через позицию индекса, такую ​​как список массивов, нам нужно использовать другой подход для отображения элементов стека. Object (obj) является временной переменной, которая объявлена ​​для хранения каждого элемента стека. Затем мы используем оператор foreach для прохождения каждого элемента стека. Для каждого элемента стека значение присваивается переменной obj. Затем мы используем команду Console.Writeline для отображения значения на консоли.
  4. Мы используем свойство Count ( st.count ), чтобы получить количество элементов в стеке. Это свойство вернет число. Затем мы отображаем это значение на консоли.
  5. Затем мы используем метод Contains, чтобы увидеть, присутствует ли значение 3 в нашем стеке. Это вернет или истинное или ложное значение. Затем мы отображаем это возвращаемое значение на консоли.

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

Вывод:

C # Коллекции

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

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

Пример 2

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

C # Коллекции

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, который используется для удаления элемента из стека.

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

Вывод:

C # Коллекции

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

Резюме

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