preface xiii abstract data types introduction abstractions abstract data types data structures general definitions the date abstract data type defining the adt using the adt preconditions and postconditions implementing the adt bags the bag abstract data type selecting data structure list-based implementation iterators designing an iterator using iterators applicationstudent records designing solution implementation exercises programming projects arrays the array structure why study arraysthe array abstract data type implementing the array the python list