every book has story as to how it came about and this one is no differentalthough we would be lying if we said its development had not been somewhat impromptu put simply this book is the result of series of emails sent back and forth between the two authors during the development of library for the net framework of the same name (with the omission of the subtitle of course!the conversation started off something like"why don' we create more aesthetically pleasing way to present our pseudocode?after few weeks this new presentation style had in fact grown into pseudocode listings with chunks of text describing how the data structure or algorithm in question works and various other things about it at this point we thought"what the hecklet' make this thing into book!and soin the summer of we began work on this book side by side with the actual library implementation when we started writing this book the only things that we were sure about with respect to how the book should be structured were always make explanations as simple as possible while maintaining moderately fine degree of precision to keep the more eager minded reader happyand inject diagrams to demystify problems that are even moderatly challenging to visualise and so we could remember how our own algorithms worked when looking back at them!)and finally present concise and self-explanatory pseudocode listings that can be ported easily to most mainstream imperative programming languages like ++ #and java key factor of this book and its associated implementations is that all algorithms (unless otherwise statedwere designed by ususing the theory of the algorithm in question as guideline (for which we are eternally grateful to their original creatorstherefore they may sometimes turn out to be worse than the "normalimplementations--and sometimes not we are two fellows of the opinion that choice is great thing read our bookread several others on the same subject and use what you see fit from each (if anythingwhen implementing your own version of the algorithms in question through this book we hope that you will see the absolute necessity of understanding which data structure or algorithm to use for certain scenario in all projectsespecially those that are concerned with performance (here we apply an even greater emphasis on real-time systemsthe selection of the wrong data structure or algorithm can be the cause of great deal of performance pain iv