Publication information:
Programming Abstractions in C
Addison-Wesley, 1998
ISBN: 978-0201545418
|
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