An Introduction to Data Structures With Applications (McGraw-Hill Computer Science Series)