Implementations of Abstract Data Types in Java