Eric Roberts > books > Programming Abstractions in C

  Publication information:
  Programming Abstractions in C
  Addison-Wesley, 1998
  ISBN: 978-0201545418

Links:
  
The Addison-Wesley book site
  The amazon.com page

Contents:
 
  Chapter 1. An Overview of ANSI C
    1.1 What is C?
    1.2 The structure of a C program
    1.3 Variables, values, and types
    1.4 Expressions
    1.5 Statements
    1.6 Functions
 
  Chapter 2. Data Types in C
    2.1 Enumeration types
    2.2 Data and memory
    2.3 Pointers
    2.4 Arrays
    2.5 Pointers and arrays
    2.6 Records
    2.7 Dynamic allocation
 
  Chapter 3. Libraries and Interfaces
    3.1 The concept of an interface
    3.2 Random numbers
    3.3 Strings
    3.4 The standard I/O library
    3.5 Other ANSI libraries
 
  Chapter 4. Introduction to Recursion
    4.1 A simple example of recursion
    4.2 The Factorial function
    4.3 The Fibonacci function
    4.4 Other examples of recursion
    4.5 Thinking recursively
 
  Chapter 5. Recursive Procedures
    5.1 The towers of Hanoi
    5.2 Generating permutations
    5.3 Graphical applications of recursion
 
  Chapter 6. Backtracing Algorithms
    6.1 Solving a maze by recursive backtracking
    6.2 Backtracking and games
 
  Chapter 7. Analysis of Algorithms
    7.1 The sorting problem
    7.2 Computational complexity and big-O notation
    7.3 Recursion to the rescue
    7.4 Standard complexity classes
    7.5 The quicksort algorithm
    7.6 Mathematical induction
 
  Chapter 8. Abstract Data Types
    8.1 Stacks
    8.2 Defining a stack ADT
    8.3 Using stacks in an application
    8.4 Implementing the stack abstraction
    8.5 Defining a scanner ADT
 
  Chapter 9. Efficiency and ADTs
    9.1 The concept of an editor buffer
    9.2 Defining the buffer abstraction
    9.3 Implementing the editor using arrays
    9.4 Implementing the editor using stacks
    9.5 Implementing the editor using linked lists
 
  Chapter 10. Linear Structures: Stacks and Queues
    10.1 Stacks revisited
    10.2 Queues
    10.3 Simulations involving queues
 
  Chapter 11. Symbol Tables
    11.1 Designing the symbol table interface
    11.2 Hash tables
    11.3 Using functions as data
    11.4 Mapping functions
    11.5 Iterators
    11.6 Command dispatch tables
 
  Chapter 12. Recursive Lists
    12.1 The recursive formulation of a list
    12.2 Defining a list abstraction
    12.3 Generalized list structure
 
  Chapter 13. Trees
    13.1 Family trees
    13.2 Binary search trees
    13.3 Balanced trees
    13.4 Defining a general interface for binary search trees
 
  Chapter 14. Expression Trees
    14.1 Overview of the interpreter
    14.2 Understanding the abstract structure of expressions
    14.3 Representing expressions as a concrete type
    14.4 Parsing an expression
    14.5 Evaluating an expression
 
  Chapter 15. Sets
    15.1 Sets as a mathematical abstraction
    15.2 Designing a set interface
    15.3 Implementing the set package
    15.4 Designing a polymorphic iterator
    15.5 Enhancing the efficiency of integer sets
 
  Chapter 16. Graphs
    16.1 The structure of a graph
    16.2 A standalone interface for graphs
    16.3 Implementation strategies for graphs
    16.4 A set-based interface for graphs
    16.5 Graph traversals
    16.6 Finding minimum paths
 
  Chapter 17. Looking Ahead
    17.1 The concept of object-oriented programming
    17.2 A brief tour of the Java programming language
    17.3 Interactive programming


Last modified on Sat Mar 22 15:03:40 2008 by eroberts