size instead of capacity, thus incorrect indexing of the circular array.delete on internal_array in the Destructor.O(1) array reallocations, by only doubling the array capacity when trying to insert an element when at full capacity.
Furthermore, better memory efficiency can be achieved (with still amortized O(1) array reallocations) by halving the array capacity whenever the array is only at 1/4 capacity after removing an element.Stack, since the head index never needs to be modified.