Sequential Index for Program Distribution Accompanying "Software Construction and Data Structures with Ada 95" by Michael B. Feldman copyright 1997, 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)