Стек преставља листу елемената у којима је могуће додавање и уклањање елемената само на једном крају листе који се назива врх стека. То значи да се елементи са стека уклањају обрнутим редоследом у односу на редослед којим су додавани на стек (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