Data Structure and Algorithm, Vols. I and II
Contents: Vol. I. Preface. 1. Introduction. 2. Data structure. 3. Data structure and C. 4. Searching. 5. Complexity.
Vol. II. Sorting. 7. Dynamic algorithms. 8. NP vs. P. 9. Graph. 10. Allocation of memory. Bibliography. Index.
"In today\'s world in the field of Computer Science, description of problems in the real world has many a superfluous detail. An essential step in problem solving is to identify the underlying abstract problems, devoid of all unnecessary details. Similarly, a particular method and model of computer has many details that are irrelevant to the problem, e.g. the processor architecture and the word length. One of the arts of computer programming is to suppress unnecessary details of the problem and the computer used. An invaluable aid is the use of high level programming language, such as C, Java, Turing Algol, ML, etc. It becomes apparent that seemingly different problems are essentially similar or even equivalent in a deep sense, once problems are abstracted. For example, the problems of maintaining a list of students, taking a lecture course and of organizing a dictionary structure in a compiler, have much in common; both require the storage and manipulation of named things while, the things have certain attributes or properties. Abstraction allows common solutions to seemingly different problems. Data structures and algorithms can be specified in any adequately precise language. English and other natural languages are satisfactory, if used with care to avoid ambiguity, but more precise mathematical languages and programming languages are generally preferred. This is a topic, covering the representation of data, and ways in which those representations can be manipulated. This book, motivated by the demands of today\'s advancements in Computer Science, is an asset for teachers and students."