purpose/goals the fourth edition of data structures and algorithm analysis in +describes data structuresmethods of organizing large amounts of dataand algorithm analysisthe estimation of the running time of algorithms as computers become faster and fasterthe need for programs that can handle large amounts of input becomes more acute paradoxicallythis requires more careful attention to efficiencysince inefficiencies in programs become most obvious when input sizes are large by analyzing an algorithm before it is actually codedstudents can decide if particular solution will be feasible for examplein this text students look at specific problems and see how careful implementations can reduce the time constraint for large amounts of data from centuries to less than second thereforeno algorithm or data structure is presented without an explanation of its running time in some casesminute details that affect the running time of the implementation are explored once solution method is determineda program must still be written as computers have become more powerfulthe problems they must solve have become larger and more complexrequiring development of more intricate programs the goal of this text is to teach students good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amount of efficiency this book is suitable for either an advanced data structures course or first-year graduate course in algorithm analysis students should have some knowledge of intermediate programmingincluding such topics as pointersrecursionand object-based programmingas well as some background in discrete math approach although the material in this text is largely language-independentprogramming requires the use of specific language as the title implieswe have chosen +for this book +has become leading systems programming language in addition to fixing many of the syntactic flaws of cc+provides direct constructs (the class and templateto implement generic data structures as abstract data types the most difficult part of writing this book was deciding on the amount of +to include use too many features of +and one gets an incomprehensible textuse too few and you have little more than text that supports classes the approach we take is to present the material in an object-based approach as suchthere is almost no use of inheritance in the text we use class templates to describe generic data structures we generally avoid esoteric +features and use the vector and string classes that are now part of the +standard previous editions have implemented class templates by separating the class template interface from its implementation although this is arguably the preferred approachit exposes compiler problems that have made it xv