Ways to implement abstract data types
A large part of the study of data structures and algorithms is learning about alternative ways to implement an ADT and evaluating alternatives to conclude their disadvantages and advantages. Essentially some alternatives will be better for certain applications and other alternatives would be better for other applications. Knowing how to do such evaluations to make good design decisions is an essential part of becoming an expert programmer.