Advertisement
desislava_topuzakova

ArrayStack

May 31st, 2020
1,063
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.10 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Stack1
  7. {
  8.     class ArrayStack<T>
  9.     {
  10.         //описание: елементи, брой на елементите, капацитет
  11.         private T[] elements;
  12.         private int count;
  13.         private const int CAPACITY = 16;
  14.  
  15.         //функционалности: конструктор, push, pop, toArray, Grow
  16.         public int Count
  17.         {
  18.             get { return count; }
  19.             set { count = value; }
  20.  
  21.         }
  22.  
  23.         public ArrayStack()
  24.         {
  25.             elements = new T[CAPACITY];
  26.             count = 0;
  27.         }
  28.  
  29.         public void Push(T element)
  30.         {
  31.             //да нямаме място
  32.             if(Count == CAPACITY)
  33.             {
  34.                 throw new Exception("Stack is full!");
  35.             }
  36.             else
  37.             {
  38.                 //да имаме място
  39.                 elements[Count] = element;
  40.                 count++;
  41.  
  42.  
  43.             }
  44.  
  45.         }
  46.  
  47.         public T Pop()
  48.         {
  49.             // дали е празен стека
  50.             if(Count == 0)
  51.             {
  52.                 throw new Exception("Empty Stack!");
  53.             }
  54.             else
  55.             {
  56.                 T lastElement = elements[Count - 1];
  57.                 elements = elements.Where(val => !val.Equals(lastElement)).ToArray();
  58.                 Count--;
  59.                 return lastElement;
  60.             }
  61.            
  62.         }
  63.  
  64.         public T Peek()
  65.         {
  66.             return elements[Count - 1];
  67.         }
  68.      
  69.         public void Clear()
  70.         {
  71.             Array.Clear(elements, 0, elements.Length);
  72.             Count = 0;
  73.         }
  74.  
  75.         public bool Contains(T element)
  76.         {
  77.             for (int i = 0; i < elements.Length; i++)
  78.             {
  79.                 T currentElement = elements[i];
  80.                 if (currentElement.Equals(element))
  81.                 {
  82.                     return true;
  83.                 }
  84.             }
  85.  
  86.             return false;
  87.         }
  88.  
  89.  
  90.  
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement