Data structures, algorithms, and software principles / Thomas A. Standish.

By: Material type: TextTextPublication details: Menlo Park, California : Addision-Wesley Publishing Company, c1994Description: xi, 748 pages : illustrations ; 25 cmISBN:
  • 201528800
Subject(s): LOC classification:
  • QA 76.9.D35 .S73 1994
Contents:
(Each chapter, except Chapter 1, begins with an Introduction and Motivation, and concludes with Pitfalls, Tips and Techniques, References for Further Study and a Chapter Summary.) 1. Preparing for the Journey. Where Are We Going? Blending Mathematics, Science, and Engineering. The Search for Enduring Principles in Computer Science. Principles of Software System Structure. Efficiency and Tradeoffs. Software Engineering Principles. Our Approach to Mathematics. Some Notes on Programming Notation. Preview of Coming Attractions. Chapter Summary. Problems and Exercises. 2. Linked Data Representations. What are Pointers? The Basic Intuition. Pascal Pointers - The Rudiments. Pointer Diagramming Notation. Linear Linked Lists. Other Linked Data Structures. 3. Introduction to Recursion. Thinking Recursively. Common Pitfall - Infinite Regresses. Quantitative Aspects of Recursive Algorithms. 4. Modularity and Data Abstraction. The Structure of Pascal Units. Priority Queues - An Abstract Data Type. A Pocket Calculator Interface. How to Hide Data Representations. Modularity and Information Hiding in Program Design. 5. Introduction to Software Engineering Concepts. Top-Down Programming By Stepwise Refinement. Proving Programs Correct. Transforming and Optimizing Programs. Testing Programs. The Philosophy of Measurement and Tuning. Software Reuse and Bottom-up Programming. Program Structuring and Documentation. 6. Introduction to Analysis of Algorithms. What Do We Use for a Yardstick? The Intuition Behind O-Notation. O-Notation - Definition and Manipulation. Analyzing Simple Algorithms. What O-Notation Doesn't Tell You. 7. Linear Data Structures - Stacks and Queues. Some Background on Stacks. ADTs for Stacks and Queues. Using the Stack ADT to Check for Balanced Parentheses. Using the Stack ADT to Evaluate Postfix Expressions. Implementing the Stack ADT. How Pascal Implements Recursive Function Calls Using Stacks. Implementations of the Queue ADT. More Queue Applications. 8. Lists, Strings, and Dynamic Memory Allocation. Lists. Generalized Lists. Applications of Generalized Lists. Strings. Dynamic Memory Allocation. 9. Trees. Basic Concepts and Terminology. Binary Trees. A Sequential Binary Tree Representation. An Application - Heaps and Priority Queues. Traversing Binary Trees. Binary Search Trees. AVL Trees and Their Performance. Two-Three Trees. Tries. An Application - Huffman Codes. 10. Graphs. Basic Concepts and Terminology. Graph Representations. Graph Searching. Topological Ordering. Shortest Paths. Task Networks. Useful Background on Graphs. 11. Hashing and the Table ADT. The Table ADT. Introduction to Hashing by Simple Examples. Collisions, Load Factors, and Clusters. Algorithms for Hashing by Open Addressing. Choosing a Hash Function. Comparison of Searching Methods Using the Table ADT. 12. External Collections of Data. Characteristics of External Storage Devices. Techniques That Don't Work Well. Techniques That Work Well. Information Retrieval and Databases. 13. Sorting. Laying Some Groundwork. Priority Queue Sorting Methods. Divide-and-Conquer Methods. Methods That Insert Keys and Keep Them Sorted. O(n) Methods - Address Calculation Sorting. Other Methods. Comparison and Perspective. 14. Advanced Recursion. Recursion as a Descriptive Method. Using Recursion to Build a Parser. Translating from Infix to Postfix. Recursion and Program Verification. 15. Object-Oriented Programming. Exploring OOP Through Progressive Examples. Building Systems Using Object-Oriented Programming. Advantages and Disadvantages of Object-Oriented Programming. 16. Advanced Software Engineering Concepts. The Software Lifecycle. Software Productivity. Software Process Models. Appendix: Math Reference and Tutorial. Arithmetic Progressions. Geometric Progressions. Floors and Ceilings. Logarithms and Exponentials. Modular Arithmetic. Sums. Recurrence Relations. Manipulating Logical Expressions. Index.
Summary: Develops the concepts and theory of data structures and algorithm analysis in a gradual fashion, proceeding from concrete examples to abstract principles. The book uses recurring themes such as recursion, levels of abstraction, efficiency and trade-offs to unify the material.
Item type: Books
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Home library Collection Call number Copy number Status Date due Barcode
Books Books National University - Manila LRC - Main General Circulation Computer Science GC QA 76.9.D35 .S73 1994 (Browse shelf(Opens below)) c.1 Available NULIB000002599

Includes bibliographical references and index.

(Each chapter, except Chapter 1, begins with an Introduction and Motivation, and concludes with Pitfalls, Tips and Techniques, References for Further Study and a Chapter Summary.) 1. Preparing for the Journey. Where Are We Going? Blending Mathematics, Science, and Engineering. The Search for Enduring Principles in Computer Science. Principles of Software System Structure. Efficiency and Tradeoffs. Software Engineering Principles. Our Approach to Mathematics. Some Notes on Programming Notation. Preview of Coming Attractions. Chapter Summary. Problems and Exercises. 2. Linked Data Representations. What are Pointers? The Basic Intuition. Pascal Pointers - The Rudiments. Pointer Diagramming Notation. Linear Linked Lists. Other Linked Data Structures. 3. Introduction to Recursion. Thinking Recursively. Common Pitfall - Infinite Regresses. Quantitative Aspects of Recursive Algorithms. 4. Modularity and Data Abstraction. The Structure of Pascal Units. Priority Queues - An Abstract Data Type. A Pocket Calculator Interface. How to Hide Data Representations. Modularity and Information Hiding in Program Design. 5. Introduction to Software Engineering Concepts. Top-Down Programming By Stepwise Refinement. Proving Programs Correct. Transforming and Optimizing Programs. Testing Programs. The Philosophy of Measurement and Tuning. Software Reuse and Bottom-up Programming. Program Structuring and Documentation. 6. Introduction to Analysis of Algorithms. What Do We Use for a Yardstick? The Intuition Behind O-Notation. O-Notation - Definition and Manipulation. Analyzing Simple Algorithms. What O-Notation Doesn't Tell You. 7. Linear Data Structures - Stacks and Queues. Some Background on Stacks. ADTs for Stacks and Queues. Using the Stack ADT to Check for Balanced Parentheses. Using the Stack ADT to Evaluate Postfix Expressions. Implementing the Stack ADT. How Pascal Implements Recursive Function Calls Using Stacks. Implementations of the Queue ADT. More Queue Applications. 8. Lists, Strings, and Dynamic Memory Allocation. Lists. Generalized Lists. Applications of Generalized Lists. Strings. Dynamic Memory Allocation. 9. Trees. Basic Concepts and Terminology. Binary Trees. A Sequential Binary Tree Representation. An Application - Heaps and Priority Queues. Traversing Binary Trees. Binary Search Trees. AVL Trees and Their Performance. Two-Three Trees. Tries. An Application - Huffman Codes. 10. Graphs. Basic Concepts and Terminology. Graph Representations. Graph Searching. Topological Ordering. Shortest Paths. Task Networks. Useful Background on Graphs. 11. Hashing and the Table ADT. The Table ADT. Introduction to Hashing by Simple Examples. Collisions, Load Factors, and Clusters. Algorithms for Hashing by Open Addressing. Choosing a Hash Function. Comparison of Searching Methods Using the Table ADT. 12. External Collections of Data. Characteristics of External Storage Devices. Techniques That Don't Work Well. Techniques That Work Well. Information Retrieval and Databases. 13. Sorting. Laying Some Groundwork. Priority Queue Sorting Methods. Divide-and-Conquer Methods. Methods That Insert Keys and Keep Them Sorted. O(n) Methods - Address Calculation Sorting. Other Methods. Comparison and Perspective. 14. Advanced Recursion. Recursion as a Descriptive Method. Using Recursion to Build a Parser. Translating from Infix to Postfix. Recursion and Program Verification. 15. Object-Oriented Programming. Exploring OOP Through Progressive Examples. Building Systems Using Object-Oriented Programming. Advantages and Disadvantages of Object-Oriented Programming. 16. Advanced Software Engineering Concepts. The Software Lifecycle. Software Productivity. Software Process Models. Appendix: Math Reference and Tutorial. Arithmetic Progressions. Geometric Progressions. Floors and Ceilings. Logarithms and Exponentials. Modular Arithmetic. Sums. Recurrence Relations. Manipulating Logical Expressions. Index.

Develops the concepts and theory of data structures and algorithm analysis in a gradual fashion, proceeding from concrete examples to abstract principles. The book uses recurring themes such as recursion, levels of abstraction, efficiency and trade-offs to unify the material.

There are no comments on this title.

to post a comment.