C # Stack näite abil

Lang L: none (table-of-contents):

Anonim

Mis on virn C #-s?

Virn on erijuhtumite kogu, mis esindab LIFO (last in first out) kontseptsiooni. Esmalt LIFO mõistmiseks võtame näite. Kujutage ette virna raamatuid, kus iga raamatut hoitakse üksteise peal.

Raamatu puhul tähendab mõte last in first out tähendab, et raamatupakist saab eemaldada ainult kõige suurema raamatu ülaosa. Raamatut pole võimalik nende vahelt eemaldada, sest siis häiriks see virna seadistamist.

Seega töötab C # -s ka virn samamoodi. Elemendid lisatakse virnale, üksteise otsa. Elemendi lisamist virnale nimetatakse tõukamistoiminguks. Elemendi eemaldamiseks virnast saate eemaldada ka virna kõige ülemise osa. Seda operatsiooni nimetatakse popiks.

Vaatame Stacki kollektsiooni jaoks saadaolevaid toiminguid üksikasjalikumalt.

Virna deklaratsioon

Virna luuakse Stack Data tüübi abil. Märksõna "uus" kasutatakse virna objekti loomiseks. Seejärel määratakse objekt muutujale st.

Stack st = new Stack()

Elementide lisamine virnale

Elemendi lisamiseks virnale kasutatakse tõukemeetodit. Avalduse üldine süntaks on toodud allpool.

Stack.push(element)

Elementide eemaldamine virnast

Pop-meetodit kasutatakse elemendi korstnast eemaldamiseks. Pop-operatsioon tagastab virna ülemise elemendi. Avalduse üldine süntaks on toodud allpool

 Stack.pop()

Krahv

Seda omadust kasutatakse virnas olevate üksuste arvu saamiseks. Allpool on selle avalduse üldine süntaks.

Stack.Count

Sisaldab

Seda meetodit kasutatakse selleks, et kontrollida, kas virnas on element olemas. Allpool on selle avalduse üldine süntaks. Avaldus tagastatakse tõene, kui element on olemas, muidu tagastab väärtuse vale.

Stack.Contains(element)

Nüüd vaatame, kuidas see töötab kooditasemel. Kõik allpool nimetatud kood kirjutatakse meie konsoolirakendusse. Kood kirjutatakse meie faili Program.cs.

Allolevas programmis kirjutame koodi, et näha, kuidas saame kasutada ülalnimetatud meetodeid.

Näide 1

Selles näites näeme

  • Kuidas virna luuakse.
  • Virna elementide kuvamine ning Count and Contain meetodite kasutamine.

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: -

  1. Esimest sammu kasutatakse virna deklareerimiseks. Siin deklareerime "st" muutujana, mis hoiab meie virna elemente.
  2. Järgmisena lisame oma virnale 3 elementi. Iga element lisatakse Push-meetodi abil.
  3. Kuna virnaelementidele ei pääse juurde indeksi asukoha kaudu nagu massiivide loendis, peame virna elementide kuvamiseks kasutama teistsugust lähenemist. Objekt (obj) on ajutine muutuja, mis deklareeritakse virna iga elemendi hoidmiseks. Seejärel kasutame virna iga elemendi läbimiseks foreachi lauset. Iga virnaelemendi jaoks määratakse väärtus muutujale obj. Seejärel kasutame konsooli väärtuse kuvamiseks käsku Console.Writeline.
  4. Virnas olevate üksuste arvu saamiseks kasutame atribuuti Count ( st.count ). See majutusasutus tagastab numbri. Seejärel kuvame selle väärtuse konsoolile.
  5. Seejärel kasutame meetodit Sisaldab, et näha, kas väärtus 3 on meie virnas olemas. See tagastab kas tõese või vale väärtuse. Seejärel kuvame selle tagastusväärtuse konsoolile.

Kui ülaltoodud kood on õigesti sisestatud ja programm on käivitatud, kuvatakse järgmine väljund.

Väljund:

Väljundist näeme, et kuvatakse virna elemente. Samuti kuvatakse väärtus True, et öelda, et väärtus 3 on virnas määratletud.

Märkus . Olete märganud, et esimesena kuvatakse virna külge lükatud viimane element. See on virna ülemine element. Virnade elementide arv on näidatud ka väljundis.

Näide 2

Nüüd vaatame funktsiooni "eemalda". Näeme koodi, mis on vajalik virna ü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: -

  1. Siin avaldame lihtsalt pop-meetodi, mida kasutatakse elemendi korstnast eemaldamiseks.

Kui ülaltoodud kood on õigesti sisestatud ja programm on käivitatud, kuvatakse järgmine väljund.

Väljund:

Näeme, et element 3 eemaldati virnast.

Kokkuvõte

  • Stack põhineb kontseptsioonil viimane in first out. Elemendi lisamist virnale nimetatakse tõukamistoiminguks. Elemendi virna eemaldamise toimingut nimetatakse pop-operatsiooniks.