Algorithms and Data Structures in F and Fortran

By Robin A. Vowels
Published by Unicomp, 1998. 488 pages. $39.00
ISBN 0-9640135-4-1

Algorithms and Data Structures in F and Fortran emphasizes fundamentals of structured programming through study of F and Fortran 90/95. It is designed for a reader's second exposure to computer programming, whether it be through self-study or a course in computer science.

The book contains a detailed exposition on important algorithms, some traditional, some new. For most of these topics, no prior or special knowledge is assumed. Popular sort algorithms are examined; the Bubble Sort, Shell Sort, Heap Sort, Quicksort, and Hash Sort. Various search algorithms are studied: linear, binary, hash, and binary search tree. The chapter on recursion commences with some short examples and culminates with Quicksort and algorithms for space-filling curves. Algorithms for solving linear equations, including tri-diagonal and banded systems (Gauss, Gauss-Seidel), matrix inversion, and roots of polynomials, are covered in detail. Algorithms for performing Fourier Transforms are included. The significant string search algorithms studied include the Knuth-Morris-Pratt, Rabin-Karp, Boyer-Moore, Baeza-Yates-Gonnet, and Baeza-Yates-Perleberg. Graphics algorithms for creating fractals and space-filling curves, for creating picture files (PCX and TIFF files), for reading a PCX file, and data compression and expansion, are provided. The chapter on numerical methods includes basic algorithms for integration, differentiation, root-finding, least squares approximation, interpolation, and for solving differential equations. The adventurous will find that the large bibliography includes many works appropriate for further reading, study, or research.

The book is not just algorithms. Additional F/Fortran topics are included: separate theme chapter are devoted to complex arithmetic, file processing, list processing (the extensive chapter includes binary search trees), text processing including string searching, and recursion.

Chapters can be studied in any order, as they are mostly independent; They can be selected at will according the reader's interests.

The book is backed up by comprehensive appendices on the built-in procedures and summaries of the F and Fortran statements.

It is recommended, although not essential, that the reader be familiar with the F or Fortrran 90/95 programming language, prior to using this text. One excellent introduction to F is Programmer's Guide to F.

The programs in the book are available here in zip format.

The programs in the book are available here in tar format.

A detailed table of contents is here.

The chapters are:

  1. Sorting
  2. Recursion
  3. Linked Lists and Trees
  4. Complex Arithmetic
  5. Using Published Algorithms
  6. Text Processing
  7. Files
  8. Solving Simultaneous Equations
  9. Graphics
  10. Searching
  11. Numerical Methods
  12. Whole Array Operations

There are six appendices: