Stacks  with dynamic arrays by repeated doubling

Repeated Doubling is a technique which implements arrays dynamically by
allocating exactly the double storage if the array is full. The
algorithm approaches O(n)  time complexity.