Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace d1
- {
- // Клас за представяне на стек
- public class Stack<T>
- {
- // Поле за съхранение на елементите на стека в масив
- private T[] items;
- // Поле за съхранение на индекса на върха на стека
- private int top;
- // Конструктор с параметър за капацитета на стека
- public Stack(int capacity)
- {
- // Създаваме нов масив с посочения капацитет
- items = new T[capacity];
- // Инициализираме върха на стека с -1, което означава, че стекът е празен
- top = -1;
- }
- // Метод за проверка дали стекът е празен
- public bool IsEmpty()
- {
- // Стекът е празен, ако върхът е -1
- return top == -1;
- }
- // Метод за проверка дали стекът е пълен
- public bool IsFull()
- {
- // Стекът е пълен, ако върхът е равен на дължината на масива минус 1
- return top == items.Length - 1;
- }
- // Метод за добавяне на елемент в стека
- public void Push(T item)
- {
- // Проверяваме дали стекът е пълен
- if (IsFull())
- {
- // Ако е пълен, хвърляме изключение
- throw new InvalidOperationException("Стекът е пълен.");
- }
- // Увеличаваме върха на стека с 1
- top++;
- // Записваме елемента на тази позиция в масива
- items[top] = item;
- }
- // Метод за премахване на елемент от стека
- public T Pop()
- {
- // Проверяваме дали стекът е празен
- if (IsEmpty())
- {
- // Ако е празен, хвърляме изключение
- throw new InvalidOperationException("Стекът е празен.");
- }
- // Запазваме елемента на върха на стека в променлива
- T item = items[top];
- // Намаляваме върха на стека с 1
- top--;
- // Връщаме запазения елемент като резултат от метода
- return item;
- }
- // Метод за връщане на елемента на върха на стека без да го премахваме
- public T Peek()
- {
- // Проверяваме дали стекът е празен
- if (IsEmpty())
- {
- // Ако е празен, хвърляме изключение
- throw new InvalidOperationException("Стекът е празен.");
- }
- // Връщаме елемента на върха на стека като резултат от метода
- return items[top];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement