Problem
1. Implement the array list ADT by means of an extendable array used in a circular fashion, so that insertions and deletions at the beginning and end of the array list run in constant time.
2. Implement the array list ADT using a doubly linked list. Show experimentally that this implementation is worse than the array-based approach.