C# стек с Push & Pop примери

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

Стекът е колекция от специални случаи, която представлява концепцията „последен влязъл, първи излязъл“ (LIFO). За да разберем първо LIFO, нека вземем пример. Представете си купчина книги, всяка една върху друга.

Концепцията „последна влязла първа излязла“ в случай на книги означава, че само най-горната книга може да бъде премахната от купчината книги. Не е възможно да премахнете книга между тях, защото тогава това би нарушило настройката на стека.

Следователно в C#, стекът също работи по същия начин. Елементите се добавят към стека, един върху друг. Процесът на добавяне на елемент към стека се нарича push операция. За да премахнете елемент от стек, можете също да премахнете най-горния елемент от стека. Тази операция е известна като pop.

Нека разгледаме по-подробно операциите, налични за колекцията Stack.

Декларация на стека

Стекът се създава с помощта на типа Stack Data. Ключовата дума „нов“ се използва за създаване на обект от стек. След това обектът се присвоява на променливата 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.

Стек в 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. Сега, тъй като елементите на стека не могат да бъдат достъпни чрез позицията на индекса като списък с масиви, трябва да използваме различен подход за показване на елементите на стека. Обектът (obj) е временна променлива, която е декларирана за съхранение на всеки елемент от стека. След това използваме оператора foreach, за да преминем през всеки елемент от стека. За всеки елемент на стека стойността се присвоява на променливата obj. След това използваме командата Console.Writeline, за да покажем стойността на конзолата.
  4. Ние използваме свойството Count (ст.брой), за да получите броя на елементите в стека. Това свойство ще върне число. След това показваме тази стойност на конзолата.
  5. След това използваме метода Contains, за да видим дали стойността на 3 присъства в нашия стек. Това ще върне стойност true или false. След това показваме тази върната стойност на конзолата.

Ако горният код е въведен правилно и програмата се изпълнява, ще се покаже следният изход.

Изход:

Стек в C#

От изхода можем да видим, че елементите на стека са показани. Също така, стойността на True се показва, за да каже, че стойността на 3 е дефинирана в стека.

Забележка: Забелязахте, че последният елемент, избутан в стека, се показва първи. Това е най-горният елемент на стека. Броят на елементите на стека също се показва в изхода.

Пример 2: Метод Stack.Pop().

Сега нека да разгледаме функцията „премахване“. Ще видим кода, необходим за премахване на най-горния елемент от стека.

Стек в 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 е премахнат от стека.

Oбобщение

  • Стекът се основава на концепцията „последен влязъл, първи излязъл“. Операцията за добавяне на елемент към стека се нарича операция за избутване. Операцията за премахване на елемент от стека се нарича изскачаща операция.