Какво е стек в C #?
Стекът е колекция от специални калъфи, която представлява концепция за последно първо (LIFO). За да разберем първо LIFO, нека вземем пример. Представете си купчина книги с всяка книга, държана една върху друга.
Концепцията за последно влизане на първо място в случая на книги означава, че само най-горната книга може да бъде премахната от купчината книги. Не е възможно да се премахне книга между тях, защото тогава това би нарушило настройката на стека.
Следователно в C # стекът също работи по същия начин. Елементите се добавят към стека, един върху друг. Процесът на добавяне на елемент към стека се нарича push операция. За да премахнете елемент от стека, можете също да премахнете най-горния елемент на стека. Тази операция е известна като поп.
Нека разгледаме по-подробно операциите, налични за колекцията Stack.
Декларация на стека
С помощта на типа данни на стека се създава стек. Ключовата дума "ново" се използва за създаване на обект от стека. След това обектът се присвоява на променливата st.
Stack st = new Stack()
Добавяне на елементи към стека
Методът push се използва за добавяне на елемент в стека. Общият синтаксис на изявлението е даден по-долу.
Stack.push(element)
Премахване на елементи от стека
Методът pop се използва за премахване на елемент от стека. Поп операцията ще върне най-горния елемент на стека. Общият синтаксис на изявлението е даден по-долу
Stack.pop()
Броя
Това свойство се използва за получаване на броя на елементите в стека. По-долу е даден общият синтаксис на това твърдение.
Stack.Count
Съдържа
Този метод се използва, за да се види дали даден елемент присъства в стека. По-долу е даден общият синтаксис на това твърдение. Операторът ще върне true, ако елементът съществува, в противен случай ще върне стойността false.
Stack.Contains(element)
Сега нека видим как това работи на ниво код. Всички по-долу споменати кодове ще бъдат записани в нашето приложение за конзола. Кодът ще бъде записан в нашия файл Program.cs.
В програмата по-долу ще напишем кода, за да видим как можем да използваме гореспоменатите методи.
Пример 1
В този пример ще видим
- Как се създава стека.
- Как да се показват елементите на стека и да се използват методите Count and 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.
- Сега, тъй като елементите на стека не могат да бъдат достъпни чрез позицията на индекса като списъка с масиви, трябва да използваме различен подход за показване на елементите на стека. Object (obj) е временна променлива, която се декларира за задържане на всеки елемент от стека. След това използваме оператора foreach, за да преминем през всеки елемент от стека. За всеки елемент на стека стойността се присвоява на променливата obj. След това използваме командата Console.Writeline, за да покажем стойността на конзолата.
- Използваме свойството Count ( st.count ), за да получим броя на елементите в стека. Това свойство ще върне номер. След това показваме тази стойност на конзолата.
- След това използваме метода 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();}}}
Обяснение на кода: -
- Тук просто издаваме метода pop, който се използва за премахване на елемент от стека.
Ако горният код е въведен правилно и програмата се изпълни, ще се покаже следният изход.
Изход:
Виждаме, че елементът 3 беше премахнат от стека.
Обобщение
- Стекът се основава на концепцията за последно излизане. Операцията за добавяне на елемент към стека се нарича операция за натискане. Операцията по премахване на елемент в стека се нарича операция за изскачане.