Inserts an object at the top of the Stack.
Stack is implemented as a circular buffer.
If Stack.Count already equals the capacity, the capacity of the Stack is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added.
null can be pushed onto the Stack as a placeholder, if needed. It occupies a slot in the stack and is treated like any object.
If Stack.Count is less than the capacity of the stack, Stack.Push(object) is an O(1) operation. If the capacity needs to be increased to accommodate the new element, Stack.Push(object) becomes an O(n) operation, where n is Stack.Count.