text.skipToContent text.skipToNavigation
  1. Home
  2. Science & Engineering
  3. Electrical & Computer Engineering
  4. Algorithms
  5. Data Structures, Algorithms, and Software Principles in C

Data Structures, Algorithms, and Software Principles in C, 1st edition

  • Thomas A. Standish

Published by Pearson (September 30th 1994) - Copyright © 1995

1st edition

Data Structures, Algorithms, and Software Principles in C

ISBN-13: 9780201591187

Includes: Paperback
Free delivery
$138.66 $173.32

What's included

  • Paperback

    You'll get a bound printed text.


Using C, this book develops the concepts and theory of data structures and algorithm analysis step-by-step. It gradually proceeds from concrete examples to abstract principles. The presentation stresses motivation, intuition, and utility before giving technical details. Recurring themes, such as recursion, levels of abstraction, efficiency, representation, and trade-offs, unify the material completely. Important traditional and contemporary software engineering principles are also covered, including modularity, abstract data types and information hiding, as well as new developments, such as risk-based software life cycle models and object-oriented programming.


Table of contents

(All chapters, except Chapter 1, begin with an Introduction and Motivation.)

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.

2. Linked Data Representations.

What are Pointers? The Basic Intuition.

Pointers in C—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 C Modules.

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 C Implements Recursive Function Calls Using Stacks.

For teachers

All the material you need to teach your courses.

Discover teaching material