Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Stack1
- {
- class ArrayStack<T>
- {
- //описание: елементи, брой на елементите, капацитет
- private T[] elements;
- private int count;
- private const int CAPACITY = 16;
- //функционалности: конструктор, push, pop, toArray, Grow
- public int Count
- {
- get { return count; }
- set { count = value; }
- }
- public ArrayStack()
- {
- elements = new T[CAPACITY];
- count = 0;
- }
- public void Push(T element)
- {
- //да нямаме място
- if(Count == CAPACITY)
- {
- throw new Exception("Stack is full!");
- }
- else
- {
- //да имаме място
- elements[Count] = element;
- count++;
- }
- }
- public T Pop()
- {
- // дали е празен стека
- if(Count == 0)
- {
- throw new Exception("Empty Stack!");
- }
- else
- {
- T lastElement = elements[Count - 1];
- elements = elements.Where(val => !val.Equals(lastElement)).ToArray();
- Count--;
- return lastElement;
- }
- }
- public T Peek()
- {
- return elements[Count - 1];
- }
- public void Clear()
- {
- Array.Clear(elements, 0, elements.Length);
- Count = 0;
- }
- public bool Contains(T element)
- {
- for (int i = 0; i < elements.Length; i++)
- {
- T currentElement = elements[i];
- if (currentElement.Equals(element))
- {
- return true;
- }
- }
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement