C# Stack s příklady Push & Pop
Co je Stack v C#?
Zásobník je speciální kolekce případů, která představuje koncept LIFO (poslední dovnitř první ven). Abychom nejprve pochopili LIFO, uveďme si příklad. Představte si stoh knih s každou knihou uloženou na sobě.
Koncept posledního dovnitř první ven v případě knih znamená, že ze stohu knih lze odstranit pouze knihu, která je nejvíce nahoře. Není možné vyjmout knihu z mezi, protože by to narušilo nastavení stohu.
Proto v C#, zásobník také funguje stejným způsobem. Prvky jsou přidány do zásobníku, jeden na druhém. Proces přidávání prvku do zásobníku se nazývá operace push. Chcete-li odstranit prvek z balíčku, můžete také odstranit nejvrchnější prvek balíčku. Tato operace je známá jako pop.
Podívejme se na operace dostupné pro kolekci Stack podrobněji.
Prohlášení o stohu
Zásobník je vytvořen pomocí typu Stack Data. Klíčové slovo „new“ se používá k vytvoření objektu zásobníku. Objekt je pak přiřazen k proměnné st.
Stack st = new Stack()
Přidávání prvků do zásobníku
Metoda push se používá k přidání prvku do zásobníku. Obecná syntaxe příkazu je uvedena níže.
Stack.push(element)
Odebrání prvků ze zásobníku
Metoda pop se používá k odstranění prvku ze zásobníku. Operace pop vrátí nejvyšší prvek zásobníku. Obecná syntaxe příkazu je uvedena níže
Stack.pop()
Počítat
Tato vlastnost se používá k získání počtu položek v zásobníku. Níže je obecná syntaxe tohoto příkazu.
Stack.Count
obsahuje
Tato metoda se používá ke zjištění, zda je prvek přítomen v zásobníku. Níže je obecná syntaxe tohoto příkazu. Příkaz vrátí true, pokud prvek existuje, jinak vrátí hodnotu false.
Stack.Contains(element)
Nyní se podívejme, jak to funguje na úrovni kódu. Všechny níže uvedené kódy budou zapsány do našeho Konzolová aplikace. Kód bude zapsán do našeho souboru Program.cs.
V níže uvedeném programu napíšeme kód, abychom viděli, jak můžeme použít výše uvedené metody.
Příklad 1: Metoda Stack.Push().
V tomto příkladu uvidíme
- Jak se vytvoří zásobník.
- Jak zobrazit prvky zásobníku a používat metody Count a 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(); } } }
Vysvětlení kódu:-
- První krok slouží k deklaraci zásobníku. Zde deklarujeme „st“ jako proměnnou pro uložení prvků našeho zásobníku.
- Dále do našeho zásobníku přidáme 3 prvky. Každý prvek je přidán pomocí metody Push.
- Nyní, protože prvky zásobníku nelze přistupovat přes pozici indexu, jako je seznam polí, musíme použít jiný přístup k zobrazení prvků zásobníku. Objekt (obj) je dočasná proměnná, která je deklarována pro každý prvek zásobníku. Poté pomocí příkazu foreach projdeme každý prvek zásobníku. Pro každý prvek zásobníku je hodnota přiřazena proměnné obj. Poté pomocí příkazu Console.Writeline zobrazíme hodnotu do konzole.
- Používáme vlastnost Count (st.count), abyste získali počet položek v zásobníku. Tato vlastnost vrátí číslo. Tuto hodnotu pak zobrazíme konzoli.
- Pak použijeme metodu Contains, abychom zjistili, zda je v našem zásobníku přítomna hodnota 3. To vrátí hodnotu true nebo false. Tuto návratovou hodnotu pak zobrazíme konzoli.
Pokud je výše uvedený kód zadán správně a program je spuštěn, zobrazí se následující výstup.
Výstup:
Z výstupu vidíme, že jsou zobrazeny prvky zásobníku. Také se zobrazí hodnota True, která říká, že v zásobníku je definována hodnota 3.
Pozor: Všimli jste si, že poslední prvek vložený do zásobníku se zobrazuje jako první. Toto je nejvyšší prvek zásobníku. Počet prvků zásobníku je také uveden ve výstupu.
Příklad 2: Metoda Stack.Pop().
Nyní se podívejme na funkci „odebrat“. Uvidíme kód potřebný k odstranění nejvyššího prvku ze zásobníku.
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(); } } }
Vysvětlení kódu:-
- Zde pouze vydáváme metodu pop, která se používá k odstranění prvku ze zásobníku.
Pokud je výše uvedený kód zadán správně a program je spuštěn, zobrazí se následující výstup.
Výstup:
Můžeme vidět, že prvek 3 byl odstraněn ze zásobníku.
Shrnutí
- Stack je založen na konceptu poslední dovnitř, první ven. Operace přidání prvku do zásobníku se nazývá operace push. Operace odstranění prvku ze zásobníku se nazývá operace pop.