Skip to content

Стек

Стек преставља листу елемената у којима је могуће додавање и уклањање елемената само на једном крају листе који се назива врх стека. То значи да се елементи са стека уклањају обрнутим редоследом у односу на редослед којим су додавани на стек (LIFO – Last In First Out). Елементи се додају на стек операцијом Push, а уклањају са стека операцијом Pop.

У програмском језику C# класа Stack<T> представља генеричку класу дефинисану у именском простору System.Collection.Generic. Стек у програмском језику C# можемо дефинисати као LIFO колекцију инстанци истог типа типа променљиве величине. Креирање стека и рад са методама класе Stack<T> демонстрираћемо у следећем примеру:

using System;
using System.Collections.Generic;

class RadSaStekom
{
    static void Main(string[] args)
    {
        // Креирај стек "ucenici"
        Stack<string> ucenici = new Stack<string>();
        
        // Додај пет елемената на стек
        ucenici.Push("Ucenik 1");
        ucenici.Push("Ucenik 2");
        ucenici.Push("Ucenik 3");
        ucenici.Push("Ucenik 4");
        ucenici.Push("Ucenik 5");
        
        // Испиши све елеменате на стеку
        foreach (string ucenik in ucenici)
            Console.WriteLine(ucenik);
        
        // Уклони елемент на врху стека - биће уклоњен "Ucenik 5"
        ucenici.Pop();

        // Који се елемент тренутно налази на врху стека?
        Console.WriteLine("Na vrhu steka je: {0}", ucenici.Peek());

        // Да ли се на стеку налази елемент "Ucenik 3"?
        if(ucenici.Contains("Ucenik 3"))
            Console.WriteLine("Na steku se nalazi Ucenik 3");
        else
            Console.WriteLine("Na steku se ne nalazi Ucenik 3");

        // Копирај елементе стека у низ "nizUcenika" и испиши га
        string[] nizUcenika = ucenici.ToArray();
        foreach (string ucenik in nizUcenika)
            Console.WriteLine(ucenik);

        // Обриши све елементе са стека
        ucenici.Clear();
    }
}
  • Методом Push() додајемо елемент на стек
  • Методом Pop() уклањамо елемент са врха стека
  • Методом Peek() добијамо вредност елемента на врху стека, али га не уклањамо
  • Методом Contains() проверавамо да ли се одређени елемент налази на стеку
  • Методом ToArray() копирамо елементе стека у низ
  • Методом Clear() бришемо све елементе са стека

Више о класи Stack<T>, њеним својствима и методама прочитајте у званичној документацији:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1?view=netframework-4.0