Structuring data with pascal : a practical introduction to abstract data types. - McArthur, William G.; Crawley, J. Winston