Implementing the list ADT using several data structures (dynamic array, linked list, binary search tree etc.) in C++.