C# Stack s Push & Pop primjerima
Što je Stack u C#?
Stog je posebna kolekcija kućišta koja predstavlja zadnji ušao prvi van (LIFO) koncept. Da bismo prvo razumjeli LIFO, uzmimo primjer. Zamislite hrpu knjiga od kojih se svaka knjiga nalazi jedna na drugoj.
Koncept zadnja ušla prva izašla u slučaju knjiga znači da se samo gornja knjiga može ukloniti iz hrpe knjiga. Nije moguće ukloniti knjigu između njih jer bi to poremetilo postavku hrpe.
Stoga u C#, stog također radi na isti način. Elementi se dodaju u hrpu, jedan na vrhu drugoga. Proces dodavanja elementa na stog naziva se operacija guranja. Da biste uklonili element iz niza, također možete ukloniti najviši element niza. Ova operacija je poznata kao pop.
Pogledajmo detaljnije operacije dostupne za kolekciju Stack.
Deklaracija steka
Stog se kreira uz pomoć tipa Stack Data. Ključna riječ "novo" koristi se za stvaranje objekta niza. Objekt se tada dodjeljuje varijabli st.
Stack st = new Stack()
Dodavanje elemenata u hrpu
Push metoda se koristi za dodavanje elementa na stog. Opća sintaksa izjave data je u nastavku.
Stack.push(element)
Uklanjanje elemenata iz hrpe
Metoda pop koristi se za uklanjanje elementa iz niza. Operacija pop vratit će najviši element snopa. Opća sintaksa izjave data je u nastavku
Stack.pop()
Računati
Ovo se svojstvo koristi za dobivanje broja stavki u stogu. Ispod je opća sintaksa ove izjave.
Stack.Count
sadrži
Ova se metoda koristi da se vidi je li element prisutan u stogu. Ispod je opća sintaksa ove izjave. Naredba će vratiti true ako element postoji, inače će vratiti vrijednost false.
Stack.Contains(element)
Sada da vidimo kako ovo radi na razini koda. Sav dolje navedeni kod bit će napisan na našem Konzolna aplikacija. Kod će biti zapisan u našu datoteku Program.cs.
U donjem programu napisat ćemo kod da vidimo kako možemo koristiti gore navedene metode.
Primjer 1: Stack.Push() metoda
U ovom primjeru ćemo vidjeti
- Kako se stvara stog.
- Kako prikazati elemente hrpe i koristiti metode Count i 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(); } } }
Objašnjenje koda:-
- Prvi korak se koristi za deklariranje hrpe. Ovdje deklariramo "st" kao varijablu za držanje elemenata našeg stoga.
- Zatim dodajemo 3 elementa u naš stog. Svaki element se dodaje metodom Push.
- Budući da se elementima hrpe ne može pristupiti putem pozicije indeksa kao što je popis polja, moramo upotrijebiti drugačiji pristup za prikaz elemenata hrpe. Objekt (obj) je privremena varijabla, koja je deklarirana za držanje svakog elementa stoga. Zatim koristimo naredbu foreach da prođemo kroz svaki element stoga. Za svaki element steka, vrijednost se dodjeljuje varijabli obj. Zatim koristimo naredbu Console.Writeline za prikaz vrijednosti na konzoli.
- Koristimo svojstvo Count (st.broj) da biste dobili broj stavki u hrpi. Ovo svojstvo će vratiti broj. Zatim ovu vrijednost prikazujemo na konzoli.
- Zatim koristimo metodu Contains da vidimo je li vrijednost 3 prisutna u našem stogu. Ovo će vratiti vrijednost true ili false. Zatim prikazujemo ovu povratnu vrijednost na konzoli.
Ako se gornji kod ispravno unese i program se pokrene, prikazat će se sljedeći izlaz.
Izlaz:
Iz izlaza možemo vidjeti da su prikazani elementi steka. Također, vrijednost True se prikazuje da kaže da je vrijednost 3 definirana na stogu.
bilješke: Primijetili ste da se zadnji element gurnut na stog prvi prikazuje. Ovo je najviši element hrpe. Broj elemenata hrpe također je prikazan u izlazu.
Primjer 2: Stack.Pop() metoda
Sada pogledajmo funkciju "ukloni". Vidjet ćemo kod potreban za uklanjanje najvišeg elementa iz hrpe.
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(); } } }
Objašnjenje koda:-
- Ovdje samo izdajemo pop metodu koja se koristi za uklanjanje elementa sa stoga.
Ako se gornji kod pravilno unese i program se pokrene, prikazat će se sljedeći izlaz.
Izlaz:
Vidimo da je element 3 uklonjen iz stoga.
rezime
- Stack se temelji na konceptu zadnji ušao prvi izašao. Operacija dodavanja elementa na stog naziva se operacija guranja. Operacija uklanjanja elementa na stog naziva se pop operacija.