C# virn Push & Pop näidetega
Mis on Stack C#-s?
Virn on erijuhtude kollektsioon, mis esindab LIFO-kontseptsiooni. Et esmalt mõista LIFO-d, võtame näite. Kujutage ette virna raamatuid, kus iga raamat on üksteise peal.
Raamatute puhul tähendab "viimase esimesena väljas" kontseptsioon seda, et raamatuvirnast saab eemaldada ainult kõige kõrgema raamatu. Raamatut pole võimalik eemaldada, sest siis segaks see virna sättimist.
Seega C#, töötab ka virn samamoodi. Elemendid lisatakse virna, üks teineteise peale. Elemendi virnasse lisamise protsessi nimetatakse tõukeoperatsiooniks. Elemendi virnast eemaldamiseks saate eemaldada ka virna kõige ülemise elemendi. Seda toimingut nimetatakse popiks.
Vaatame Stacki kollektsiooni jaoks saadaolevaid toiminguid üksikasjalikumalt.
Virna deklaratsioon
Pinu luuakse tüübi Stack Data abil. Märksõna "uus" kasutatakse virna objekti loomiseks. Seejärel määratakse objekt muutujale st.
Stack st = new Stack()
Elementide lisamine virnasse
Tõukemeetodit kasutatakse elemendi lisamiseks virnale. Avalduse üldine süntaks on toodud allpool.
Stack.push(element)
Elementide eemaldamine virnast
Elemendi eemaldamiseks virnast kasutatakse pop-meetodit. Pop-operatsioon tagastab virna kõige ülemise elemendi. Avalduse üldine süntaks on toodud allpool
Stack.pop()
Loendama
Seda atribuuti kasutatakse virnas olevate üksuste arvu hankimiseks. Allpool on selle avalduse üldine süntaks.
Stack.Count
Sisaldab
Seda meetodit kasutatakse selleks, et näha, kas virnas on elementi. Allpool on selle avalduse üldine süntaks. Avaldus tagastab tõene, kui element on olemas, vastasel juhul tagastab see väärtuse false.
Stack.Contains(element)
Nüüd vaatame, kuidas see töötab koodi tasemel. Kogu alltoodud kood kirjutatakse meile Konsooli rakendus. Kood kirjutatakse meie faili Program.cs.
Allolevas programmis kirjutame koodi, et näha, kuidas saame ülalnimetatud meetodeid kasutada.
Näide 1: Stack.Push() meetod
Selles näites näeme
- Kuidas virn luuakse.
- Kuidas kuvada virna elemente ning kasutada loendamis- ja sisaldamismeetodeid.
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();
}
}
}
Koodi selgitus: -
- Esimest sammu kasutatakse virna deklareerimiseks. Siin deklareerime "st" muutujana, mis hoiab meie virna elemente.
- Järgmisena lisame oma virnale 3 elementi. Iga element lisatakse Push-meetodi abil.
- Kuna virna elementidele ei pääse juurde indeksi positsiooni kaudu nagu massiivi loend, peame virna elementide kuvamiseks kasutama teistsugust lähenemist. Objekt (obj) on ajutine muutuja, mis on deklareeritud virna iga elemendi hoidmiseks. Seejärel kasutame virna iga elemendi läbimiseks foreach-lauset. Iga virnaelemendi jaoks määratakse väärtus obj muutujale. Seejärel kasutame konsooli väärtuse kuvamiseks käsku Console.Writeline.
- Me kasutame atribuuti Count (st.count), et saada virnas olevate üksuste arv. See vara tagastab numbri. Seejärel kuvame selle väärtuse konsoolile.
- Seejärel kasutame meetodit Sisaldab, et näha, kas väärtus 3 on meie virnas. See tagastab kas tõese või vale väärtuse. Seejärel kuvame selle tagastamisväärtuse konsoolile.
Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatakse, kuvatakse järgmine väljund.
Väljund:
Väljundist näeme, et kuvatakse virna elemendid. Samuti kuvatakse True väärtus, mis ütleb, et väärtus 3 on virnas määratletud.
märkused: olete märganud, et esimesena kuvatakse viimati virna lükatud element. See on virna kõige ülemine element. Samuti kuvatakse väljundis virna elementide arv.
Näide 2: Stack.Pop() meetod
Nüüd vaatame "eemaldamise" funktsiooni. Näeme koodi, mis on vajalik virnast ülemise elemendi eemaldamiseks.
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();
}
}
}
Koodi selgitus: -
- Siin anname lihtsalt välja pop-meetodi, mida kasutatakse elemendi virnast eemaldamiseks.
Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatakse, kuvatakse järgmine väljund.
Väljund:
Näeme, et element 3 eemaldati virnast.
kokkuvõte
- Stack põhineb kontseptsioonil "viimasena esimene väljas". Elemendi virnasse lisamise operatsiooni nimetatakse tõukeoperatsiooniks. Elemendi virnast eemaldamise operatsiooni nimetatakse pop-operatsiooniks.




