Three different implementations of the same system: Dynamic Array, Linked-List, and Abstract Data Type