Describe the structure and pseudocode for an array-based implementation of the vector ADT that achieves O(1) time for insertions and removals at rank 0, as well insertions and removals at the end of the vector. Your implementation should also provide a constant running time for the elemAtRank() function. (Hint: think about
how to extend the circular array implementation of the queue ADT given in class).