C# Stack Push & Pop példákkal

Mi a Stack a C#-ban?

A verem egy speciális esetgyűjtemény, amely a „last in first out” (LIFO) koncepciót képviseli. A LIFO megértéséhez vegyünk egy példát. Képzeljen el egy halom könyvet, amelyekben minden könyv egymás tetején van.

A könyvek esetében az „utolsó az első” koncepció azt jelenti, hogy csak a legfelső könyvet lehet eltávolítani a könyvkötegből. Nem lehet könyvet kivenni a kettő közül, mert akkor az megzavarná a köteg beállítását.

Ezért C#, a verem is ugyanúgy működik. Az elemek egymás tetejére kerülnek a verembe. Azt a folyamatot, amikor egy elemet hozzáadunk a veremhez, push műveletnek nevezzük. Elemnek a veremből való eltávolításához eltávolíthatja a verem legfelső elemét is. Ezt a műveletet popnak nevezik.

Nézzük meg részletesebben a Stack gyűjteményhez elérhető műveleteket.

Nyilatkozat a veremről

A verem a Stack Data típus segítségével jön létre. Az „új” kulcsszó egy verem objektumának létrehozására szolgál. Az objektumot ezután az st változóhoz rendeljük.

Stack st = new Stack()

Elemek hozzáadása a veremhez

A push módszerrel elemet adunk a veremhez. Az utasítás általános szintaxisa alább látható.

Stack.push(element)

Elemek eltávolítása a veremből

A pop módszerrel egy elemet távolítanak el a veremből. A pop művelet a verem legfelső elemét adja vissza. Az utasítás általános szintaxisa alább látható

 Stack.pop()

Gróf

Ez a tulajdonság a veremben lévő elemek számának lekérésére szolgál. Az alábbiakban ennek az állításnak az általános szintaxisa látható.

Stack.Count

tartalmaz

Ezzel a módszerrel ellenőrizhető, hogy van-e elem a veremben. Az alábbiakban ennek az állításnak az általános szintaxisa látható. Az utasítás igazat ad vissza, ha az elem létezik, ellenkező esetben false értéket ad vissza.

Stack.Contains(element)

Lássuk, hogyan működik ez kódszinten. Az alább említett kódok mindegyike meg lesz írva nekünk Konzol alkalmazás. A kód a Program.cs fájlunkba kerül.

Az alábbi programban megírjuk a kódot, hogy megnézzük, hogyan tudjuk használni a fent említett módszereket.

1. példa: Stack.Push() metódus

Ebben a példában látni fogjuk

  • Hogyan jön létre a verem.
  • A verem elemeinek megjelenítése, valamint a Count és Contain metódusok használata.

Verem a C#-ban

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();
  }
 }
}

Kód magyarázata: -

  1. Az első lépés a verem deklarálására szolgál. Itt deklaráljuk az „st”-t változóként, amely a veremünk elemeit tárolja.
  2. Ezután hozzáadunk 3 elemet a veremünkhöz. Minden elem a Push módszerrel kerül hozzáadásra.
  3. Most mivel a veremelemek nem érhetők el az indexpozíción keresztül, mint a tömb lista, más megközelítést kell alkalmaznunk a verem elemeinek megjelenítéséhez. Az objektum (obj) egy ideiglenes változó, amely a verem minden elemének tárolására van deklarálva. Ezután a foreach utasítással végigmegyünk a verem egyes elemei között. Minden egyes veremelemnél az érték az obj változóhoz van rendelve. Ezután a Console.Writeline paranccsal jelenítjük meg az értéket a konzolon.
  4. A Count tulajdonságot használjuk (st.count), hogy megkapja a halomban lévő elemek számát. Ez a tulajdonság egy számot ad vissza. Ezután ezt az értéket megjelenítjük a konzolon.
  5. Ezután a Contains metódussal ellenőrizzük, hogy a 3-as érték jelen van-e a veremünkben. Ez igaz vagy hamis értéket ad vissza. Ezután ezt a visszatérési értéket megjelenítjük a konzolon.

Ha a fenti kódot megfelelően adta meg és a program lefut, a következő kimenet jelenik meg.

output:

Verem a C#-ban

A kimenetből láthatjuk, hogy a verem elemei megjelennek. A True értéke is megjelenik, jelezve, hogy a 3 érték a veremben van meghatározva.

Megjegyzések: Észrevette, hogy a verembe utoljára betolt elem jelenik meg először. Ez a verem legfelső eleme. A veremelemek száma is megjelenik a kimenetben.

2. példa: Stack.Pop() metódus

Most nézzük az „eltávolítás” funkciót. Látni fogjuk a legfelső elem veremből való eltávolításához szükséges kódot.

Verem a C#-ban

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();
  }
 }
}

Kód magyarázata: -

  1. Itt csak a pop módszert adjuk ki, amely egy elem eltávolítására szolgál a veremből.

Ha a fenti kódot megfelelően beírta és a program lefut, a következő kimenet jelenik meg.

output:

Verem a C#-ban

Láthatjuk, hogy a 3. elemet eltávolították a veremből.

Összegzésként

  • A Stack az utolsó be az elsőben koncepción alapul. Azt a műveletet, amikor egy elemet hozzáadunk a veremhez, push műveletnek nevezzük. Az elem veremből való eltávolításának műveletét pop műveletnek nevezzük.

Foglald össze ezt a bejegyzést a következőképpen: