Write an array-based implementation of the ADT list that expandsthe size of the array of list entries as needed so that the listcan always accommodate a new entry.
Also reduce the size of the array as needed to accommodateseveral removals. When the size of the array is greater than 20 andthe number of entries in the list is less than half the size of thearray, reduce the size of the array so that it is three quarters ofits current size.
Note: In expanding the array - when an element is added to afull array, double the size of the array.