preface to the edition this new edition incorporates many revisions of details and several changes of more significant nature they were all motivated by experiences made in the ten years since the first edition appeared most of the contents and the style of the texthoweverhave been retained we briefly summarize the major alterations the major change which pervades the entire text concerns the programming language used to express the algorithms pascal has been replaced by modula- although this change is of no fundamental influence to the presentation of the algorithmsthe choice is justified by the simpler and more elegant syntactic structures of modula- which often lead to more lucid representation of an algorithm' structure apart from thisit appeared advisable to use notation that is rapidly gaining acceptance by wide communitybecause it is well-suited for the development of large programming systems neverthelessthe fact that pascal is modula' ancestor is very evident and eases the task of transition the syntax of modula is summarized in the appendix for easy reference as direct consequence of this change of programming languagesect on the sequential file structure has been rewritten modula- does not offer built-in file type the revised sect presents the concept of sequence as data structure in more general mannerand it introduces set of program modules that incorporate the sequence concept in modula- specifically the last part of is new it is dedicated to the subject of searching andstarting out with linear and binary searchleads to some recently invented fast string searching algorithms in this section in particular we use assertions and loop invariants to demonstrate the correctness of the presented algorithms new section on priority search trees rounds off the on dynamic data structures also this species of trees was unknown when the first edition appeared they allow an economical representation and fast search of point sets in plane the entire fifth of the first edition has been omitted it was felt that the subject of compiler construction was somewhat isolated from the preceding and would rather merit more extensive treatment in its own volume finallythe appearance of the new edition reflects development that has profoundly influenced publications in the last ten yearsthe use of computers and sophisticated algorithms to prepare and automatically typeset documents this book was edited and laid out by the author with the aid of lilith computer and its document editor lara without these toolsnot only would the book become more costlybut it would certainly not be finished yet palo altomarch wirth