public static void Main()
Console.WriteLine("Hello World");
StackFromArray<int> numbers = new StackFromArray<int>();
Console.WriteLine(numbers.Pop());
Console.WriteLine(numbers.Pop());
Console.WriteLine(numbers.Peek());
Console.WriteLine(numbers.Pop());
Console.WriteLine(numbers.Peek());
public class StackFromArray<T> {
private T[] Items {get; set;}
private const int defaultCapacity = 4;
public StackFromArray() {
Items = new T[defaultCapacity];
public void Push(T item) {
if (size == Items.Length)
T[] array = new T[Items.Length != 0 ? 2 * Items.Length : defaultCapacity];
Array.Copy(Items, array, Items.Length);
throw new System.InvalidOperationException();
Items[size] = default(T);
throw new InvalidOperationException("Empty stack");