Sequential Index for Program Distribution Accompanying
"Software Construction and Data Structures with Ada 95"
by Michael B. Feldman
copyright 1996, Addison Wesley Publishing Company
ISBN 0-201-88795-9

Comments and questions to mfeldman@seas.gwu.edu

This file gives the program units in the order in which 
they appear in the text.

Chapter 1  Abstraction and the Ada Type System

Prog 1.1   Ada95_Changes
Prog 1.2   World_Time

Chapter 2  Writing Abstract Data Types

Prog 2.1   Rationals (spec)
Prog 2.2   Rationals (body)
Prog 2.3   Rationals.IO (spec)
Prog 2.4   Rational.IO (body)
Prog 2.5   Test_Rationals_1
Prog 2.6   Test_Rationals_2
Prog 2.7   Test_Rationals_3
Prog 2.8   Currency (spec)
Prog 2.9   Currency (body)
Prog 2.10  Currency.IO (spec)
Prog 2.11  Currency.IO (body)
Prog 2.12  Dates (spec)
Prog 2.13  Dates (body)
Prog 2.14  Test_Dates
Prog 2.15  Screen (spec)
Prog 2.16  Screen (body)
Prog 2.17  Four_Pieces
Prog 2.18  Test_Windows
Prog 2.19  Windows (spec)
Prog 2.20  Windows (body)
Prog 2.21  Square_Root_Table
Prog 2.22  Sine_Curve
Prog 2.23  Immediate
Prog 2.24  Command_Arguments

Chapter 3  Algorithms, Recursion, 
           Performance Prediction and Performance Measurement

Prog 3.1   Factorial
Prog 3.2   Test_Factorial
Prog 3.3   Flip (string reversal)
Prog 3.4   Palindrome
Prog 3.5   PrintPermutations
Prog 3.6   LookUpName (binary search)
Prog 3.7   Employees (spec)
Prog 3.8   Employees.IO (spec)
Prog 3.9   Employees.IO (body)
Prog 3.10  Test_Employees
Prog 3.11  Tables (spec)
Prog 3.12  Debugging_Support (spec)
Prog 3.13  Debugging_Support (body)
Prog 3.14  Tables (body)
Prog 3.15  Test_Employee_Table
Prog 3.16  Employee_UI
Prog 3.17  CPUClock (spec)
Prog 3.18  CPUClock (body)
Prog 3.19  TestClok

Chapter 4  Multidimensional and Unconstrained Array Types

Prog 4.1   Test_Max_Value
Prog 4.2   Phone_Service
Prog 4.3   Vectors (spec)
Prog 4.4   Vectors (body)
Prog 4.5   Test_Vectors
Prog 4.6   Matrices (spec)

Chapter 5  Generic SubPrograms and Packages

Prog 5.1   Swap_Generic (spec)
Prog 5.2   Swap_Generic (body)
Prog 5.3   Test_Swap_Generic
Prog 5.4   Maximum_Generic (spec)
Prog 5.5   Maximum_Generic (body)
Prog 5.6   Test_Maximum_Generic
Prog 5.7   Maximum_Array_Generic (spec)
Prog 5.8   Maximum_Array_Generic (body)
Prog 5.9   Sort_Generic (spec)
Prog 5.10  Sort_Generic (body)
Prog 5.11  Test_Sort_Generic
Prog 5.12  Binary_Search_Generic (spec)
Prog 5.13  Test_Binary_Search
Prog 5.14  Binary_Search_Generic (body)
Prog 5.15  Sets_Generic (spec)
Prog 5.16  Sets_Generic (body)
Prog 5.17  Music_Makers
Prog 5.18  Vectors_Generic (spec)
Prog 5.19  Tables_Generic (spec)
Prog 5.20  Tables_Generic (body)
Prog 5.21  Tables_Generic.Backup (spec)
Prog 5.22  Tables_Generic.Backup (body)
Prog 5.23  Test_Backup
Prog 5.24  Table_ADO_Generic

Chapter 6  Variant and Tagged Record Types

Prog 6.1   Geometry (spec)
Prog 6.2   Geometry (body)
Prog 6.3   Geometry.IO (spec)
Prog 6.4   Geometry.IO (body)
Prog 6.5   Test_Geometry
Prog 6.6   Metric_System (spec)
Prog 6.7   Metric_System (body)
Prog 6.8   Test_Metric
Prog 6.9   VStrings (spec)
Prog 6.10  VStrings (body)
Prog 6.11  VStrings.IO (spec)
Prog 6.12  VStrings.IO (body)
Prog 6.13  Test_VStrings
Prog 6.14  Persons (spec)
Prog 6.15  Personnel (spec)
Prog 6.16  Payroll (spec)
Prog 6.17  Use_Payroll
Prog 6.18  Persons (body)
Prog 6.19  Personnel (body)
Prog 6.20  Payroll (body)

Chapter 7  Queues and Stacks

Prog 7.1   Queues_Generic (spec)
Prog 7.2   Queues_Generic (body)
Prog 7.3   Stacks_Generic (spec)
Prog 7.4   Evaluate_RPN
Prog 7.5   RPN_Simple
Prog 7.6   RPN_Priorities
Prog 7.7   Simulation
Prog 7.8   Simulation.Process_Arrival (subunit)
Prog 7.9   Simulation.Process_Departure (subunit)

Chapter 8  Access Types and Dynamic Data Structures

Prog 8.1   Singly_Linked_Lists (spec)
Prog 8.2   Test_Lists
Prog 8.3   Singly_Linked_Lists (body)
Prog 8.4   Singly_Linked_Lists.AddToFront (subunit)
Prog 8.5   Singly_Linked_Lists.Traverse (recursive subunit)
Prog 8.6   Singly_Linked_Lists.AddToEnd (recursive subunit)
Prog 8.7   Singly_Linked_Lists.Copy (recursive subunit)
Prog 8.8   Singly_Linked_Lists.Traverse (iterative subunit)
Prog 8.9   Singly_Linked_Lists.AddToEnd (iterative subunit)
Prog 8.10  Singly_Linked_Lists.Copy (iterative subunit)
Prog 8.11  Singly_Linked_Lists.AddToEnd (head/tail pointers)
Prog 8.12  Singly_Linked_Lists.InsertInOrder (subunit)

Chapter 9  Linked-List Applications

Prog 9.1   Lists_Generic (spec)
Prog 9.2   Lists_Generic (body)
Prog 9.3   Test_Lists_Generic
Prog 9.4   Queues_Generic_List (spec)
Prog 9.5   Tables_Generic_List (spec)
Prog 9.6   Tables_Generic_List (body)
Prog 9.7   General_Access_Types
Prog 9.8   Payroll_Array
Prog 9.9   Payroll_List

Chapter 10 Directed Graphs

Prog 10.1  Digraphs_Generic (spec)
Prog 10.2  Digraphs_Generic (body)
Prog 10.3  Digraphs_Generic.Traverse_DFS (subunit)
Prog 10.4  Digraphs_Generic.Traverse_BFS (subunit)
Prog 10.5  Valid_Ident

Chapter 11 Binary Trees

Prog 11.1  Exp_to_Tree
Prog 11.2  Binary_Search_Trees_Generic (spec)
Prog 11.3  Test_BST
Prog 11.4  Binary_Search_Trees_Generic (body)
Prog 11.5  Binary_Search_Trees_Generic.Search (subunit)
Prog 11.6  Binary_Search_Trees_Generic.Traverse_LNR (BST subunit)
Prog 11.7  Binary_Search_Trees_Generic.Insert (BST subunit)
Prog 11.8  Binary_Search_Trees_Generic.FindSmallest (BST subunit)
Prog 11.9  Binary_Search_Trees_Generic.Delete (BST subunit)
Prog 11.10 Tables_Generic_BST (spec)
Prog 11.11 Trees_Xref_Generic (spec)
Prog 11.12 English_Lexer (spec)
Prog 11.13 English_Xref
Prog 11.14 Trees_Xref_Generic (body)
Prog 11.15 English_Lexer (body, CASE version)
Prog 11.16 English_Lexer (body, pointer version)

Chapter 12 Advanced Tree Concepts

Prog 12.1  BST_Threaded_Generic.Traverse_LNR (subunit)
Prog 12.2  BST_Threaded_Generic.Insert (subunit)
Prog 12.3  Heaps_Generic (spec)
Prog 12.4  Heaps_Generic (body)
Prog 12.5  Queues_Generic_Priority (spec)
Prog 12.6  Queues_Generic_Priority (body)
Prog 12.7  AVL_Trees_Generic.Height (subunit)
Prog 12.8  AVL_Trees_Generic.Rotate_R (subunit)
Prog 12.9  AVL_Trees_Generic.Rotate_L (subunit)
Prog 12.10 AVL_Trees_Generic.Rotate_LR (subunit)
Prog 12.11 AVL_Trees_Generic.Insert (subunit)

Chapter 13 Hash Table Methods

Prog 13.1  Hash_Truncation
Prog 13.2  Random_Numbers
Prog 13.3  Hash_Division_Integer
Prog 13.4  Hash_Division_Integer_2
Prog 13.5  Hash_Division_Letter
Prog 13.6  Random_Strings
Prog 13.7  Hash_Division_Letter_2
Prog 13.8  Tables_Generic_Hash (spec)
Prog 13.9  Tables_Generic_Hash (body)

Chapter 14 Internal Sorting Methods

Prog 14.1  Sort_SimpleSelection_Generic (spec)
Prog 14.2  Sort_SimpleSelection_Generic (body)
Prog 14.3  Sort_DelayedSelection_Generic (spec)
Prog 14.4  Sort_DelayedSelection_Generic (body)
Prog 14.5  Sort_Bubble_Generic (spec)
Prog 14.6  Sort_Bubble_Generic (body)
Prog 14.7  Sort_LinearInsertion_Generic (spec)
Prog 14.8  Sort_LinearInsertion_Generic (body)
Prog 14.9  Sort_Merge_Generic (spec)
Prog 14.10 Sort_Merge_Generic (body)
Prog 14.11 Sort_Heap_Generic (spec)
Prog 14.12 Sort_Heap_Generic (body)
Prog 14.13 Sort_Quick_Generic (spec)
Prog 14.14 Sort_Quick_Generic (body)
Prog 14.15 Sort_Shell_Generic (spec)
Prog 14.16 Sort_Shell_Generic (body)

Chapter 15 Introduction to Concurrent Programming

Prog 15.1  One_Task
Prog 15.2  Two_Tasks
Prog 15.3  Two_Cooperating_Tasks
Prog 15.4  Start_Buttons
Prog 15.5  Columns
Prog 15.6  Protect_Screen
Prog 15.7  Task_Array
Prog 15.8  Bank
Prog 15.9  Types (spec)
Prog 15.10 Customers (spec)
Prog 15.11 Tellers (spec)
Prog 15.12 Database (spec)
Prog 15.13 Reporter (spec)
Prog 15.14 Reporter (body)
Prog 15.15 Customers (body)
Prog 15.16 Database (body)
Prog 15.17 Tellers (body)
Prog 15.18 Society (spec)
Prog 15.19 Diners
Prog 15.20 Phil (spec)
Prog 15.21 Room (spec)
Prog 15.22 Phil (body)
Prog 15.23 Room (body)
Prog 15.24 Chop (spec)
Prog 15.25 Chop (body)
