xv data structures will also benefit from having first completed good course in discrete mathematics nonetheless attempts to give reasonably complete survey of the prerequisite mathematical topics at the level necessary to understand their use in this book readers may wish to refer back to the appropriate sections as needed when encountering unfamiliar mathematical material sophomore-level class where students have only little background in basic data structures or analysis (that isbackground equivalent to what would be had from traditional cs coursemight cover - in detailas well as selected topics from that is how use the book for my own sophomorelevel class students with greater background might cover skip most of except for referencebriefly cover and and then cover - in detail againonly certain topics from might be covereddepending on the programming assignments selected by the instructor senior-level algorithms course would focus on and - is intended in part as source for larger programming exercises recommend that all students taking data structures course be required to implement some advanced tree structureor another dynamic structure of comparable difficulty such as the skip list or sparse matrix representations of none of these data structures are significantly more difficult to implement than the binary search treeand any of them should be within student' ability after completing while have attempted to arrange the presentation in an order that makes senseinstructors should feel free to rearrange the topics as they see fit the book has been written so that once the reader has mastered - the remaining material has relatively few dependencies clearlyexternal sorting depends on understanding internal sorting and disk files section on the union/find algorithm is used in kruskal' minimum-cost spanning tree algorithm section on selforganizing lists mentions the buffer replacement schemes covered in section draws on examples from throughout the book section relies on knowledge of graphs otherwisemost topics depend only on material presented earlier within the same most end with section entitled "further reading these sections are not comprehensive lists of references on the topics presented ratheri include books and articles thatin my opinionmay prove exceptionally informative or entertaining to the reader in some cases include references to works that should become familiar to any well-rounded computer scientist use of javathe programming examples are written in javabut do not wish to discourage those unfamiliar with java from reading this book have attempted to