|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

Software Construction and Data Structures with Ada 95, 2/E
Michael B. FeldmanThe George Washington University

ISBN-10: 0201887959
ISBN-13:  9780201887952

Publisher:  Addison-Wesley
Copyright:  1996
Format:  Paper; 648 pp
Published:  06/13/1996
Status: Available on Demand   What's this?


Customers outside the U.S., click here.


Using Ada 95, this book covers classical data structures and algorithms in a software engineering context. Through the use of generic abstract data types (ADT) packages, this text gives a realistic view of system development using reusable components. The book contains over 200 complete and compilable package specifications, implementations, and programs, which are compatible with any Ada compiler.

(Each chapter concludes with "Exercises".)

1. Abstraction and the Ada Type System.

Your Ada Starting Points.

Some Ada 95 Changes.

The Life Cycle of Software Development.

The Goals of Software Engineering.

Using Abstraction to Manage Complexity.

A Quick Tour of the Ada Type System.

A Set of Numeric Types for This Book.

Abstract Data Types (ADTs).

Object-Oriented Programming.

A Predefined ADT: the Ada.Calendar Package.

Application: Time Around the World.

A Predefined ADT: Strings in Ada.

Exercises.



2. Writing Abstract Data Types.

ADT Design: Rational Numbers.

Developing a Test Plan.

ADT Design: an ADT for Dollars and Cents.

ADT Design: Calendar Dates.

ADT Design: Simple Screen Handler.

ADT Design: Simple Window Manager.

A Few More Ada 95 Topics.

Exercises.



3. Algorithms, Recursion, Performance Prediction, and Performance Measurement.

Algorithms and Algorithm Design.

Recursive Algorithms.

Performance Prediction and the "Big O" Notation.

Design: An ADT for Keyed Tables.

Application: A Simple Employee Database.

Measuring Program Performance.

Exercises.



4. Multidimensional and Unconstrained Array Types.

Data Structures: Multidimensional Arrays.

Data Structures: Unconstrained Array Types.

Application: A General Sorting Program.

ADT Design: Mathematical Vectors.

ADT Design: Mathematical Matrices.

Storage Mappings.

Exercises.



5. Generic Subprograms and Packages.

Ada Structures: Generic Units.

Application: A Generic Sorting Program.

Application: a Generic Binary Search Program.

ADT Design: An Abstract Data Type for Sets.

Application: Music Makers.

ADT Design: A Generic Vector Package.

Summary of Generic Specifications.

ADT Design: Generic Keyed Table Handler.

ADT Design: A Generic Backup Package.

Application: Airline Passenger List.

ADT Design: ADTs versus Abstract Data Objects.

Exercises.



6. Variant and Tagged Record Types.

Ada Structures: Variant Records.

ADT Design: Geometric Figures.

ADT Design: Metric System.

ADT Design: Variable-Length Strings.

Ada Structures: Strings in Ada 95.

Ada Structures: Tagged Types.

Exercises.



7. Queues and Stacks.

Queues and Stacks Introduced.

ADT Design: FIFO Queues.

ADT Design: Priority Queues.

ADT Design: Stacks.

Expression Evaluation and Polish Notation.

Application: An Infix-to-RPN Translator Program.

Application: An Event-Driven Simulation.

Exercises.



8. Access Types and Dynamic Data Structures.

Ada Structures: Access Types and the NEW Operator.

Data Structures: Singly Linked Lists.

Recursive Implementations of Linked-List Operations.

Iterative Implementation of Linked-List Operations.

Linked Lists with Head and Tail Pointers.

Ordered Insertions in Linked Lists.

Debugging Programs with Linked Lists.

Exercises.



9. Linked List Applications.

ADT Design: A Generic ADT for Singly-Linked Lists.

Allocation Using a List of Available Space (LAVS).

ADT Design: Unbounded Queues and Stacks.

ADT Design: The Keyed Table as a Linked List.

Application: The Airline Passenger List Again.

ADT Design: Passive and Active Iterators.

ADT Design: Unbounded Variable-Length Strings.

Application: Sparse Vectors and Matrices.

Simulating Dynamic Memory Management.

Ada Structures: Ada 95 Unbounded Strings.

Ada Structures: Ada 95 General Access Types.

Heterogeneous Structures and Dynamic Dispatching.

Exercises.



10. Directed Graphs.

Undirected and Directed Graphs.

Properties of Digraphs.

Implementations of Directed Graphs.

Graph Traversals.

A Generic ADT for Directed Graphs.

Application: A Simple Lexical Scanner.

Exercises.



11. Binary Trees.

Trees.

Properties of Binary Trees.

Implementing Binary Trees.

Traversals of Binary Trees.

Expression Trees.

Application: Building an Expression Tree.

Binary Search Trees (BSTs).

ADT Design: The Keyed Table as a BST.

Application: A Cross-Reference Generator.

Subprogram Pointers and Table-Driven Programming.

Exercises.



12. Advanced Tree Concepts.

Threaded Binary Search Trees.

Heaps.

Application: The Priority Queue as a Heap.

Digital Search Trees.

AVL Balanced Binary Search Trees.

B-Trees.

Exercises.



13. Hash Table Methods.

Sequential and Binary Search Revisited.

The Hash Table.

Choosing a Hash Function.

Resolving Collisions in Hash Tables.

Hybrid Search Strategies.

Exercises.



14. Internal Sorting Methods.

Introduction.

O(N2) Sorts: Simple Selection Sort.

O(N2) Sorts: Delayed Selection Sort.

O(N2) Sorts: Bubble Sort.

O(N2) Sorts: Linear Insertion Sort.

O(N log N) Sorts: Merge Sort.

O(N log N) Sorts: Heap Sort.

O(N log N) Sorts: Quick Sort.

Other Sorts: Shell Sort.

Other Sorts: Quadratic Selection Sort.

Other Sorts: Radix Sort.

Exercises.



15. Introduction to Concurrent Programming.

What Is Concurrent Programming?

Ada Structures: Task Types and Task Objects.

Ada Structures: Protected Types and Protected Objects.

Data Structures: The Task as a Data Structure.

Application: Simulation of a Bank.

Application: The Dining Philosophers.

Chapter Review.

Exercises.



Appendices.

A. The Ada Character Set, Delimiters, and Reserved Words.

B. Ada 95 Syntax Rules.

C. The Ada Predefined Language Environment.

D. Specification of the Package Ada.Text_IO.

E. Specification of the Package Ada.Calendar.

F. Specification of the Ada Math Libraries.

G. Specification of the Ada String Libraries Used in this Book.

H. Summary of Ada Execution-Time Exceptions.

I. Ada Hints for Pascal Users.

J. Timing Algorithm Performance on a Shared Computer.

Dr. Michael Feldman is a professor of computer science at The George Washington University, as well as Chair of the Education Working Group of the ACM Special Interest Group on Ada (SIGAda). He has over fifteen years experience teaching Ada in introductory courses, and is the author of two other books, Software Construction and Data Structures with Ada 95 and Data Structures with Modula-2. Dr. Feldman manages the popular Internet site, Ada Programming Language Resources for Educators and Students - http://www.acm.org/sigada/education.

Ideal for large-scale software system development, Ada 95 is the first fully object-oriented language to be internationally standardized by the ISO and the ANSI. Michael B. Feldman's Software Construction and Data Structures with Ada 95 introduces data structures concepts and their applications using this powerful, yet flexible language. Through the use of generic abstract data type (ADT) packages, this text gives a realistic view of system development using reusable components. With an informal writing style, Michael B.Feldman leads students from subject to subject finding effective, maintainable, and portable solutions to programming problems.

Highlights:
  • Covers Ada 95 object-oriented programming concepts.
  • Introduces algorithm performance evaluation and "big O" notation in Chapter 3 and expands on the concepts throughout the book.
  • Uses real-world applications in each chapter for students to put data structures and ADTs into practice.
  • Provides over 200 executable programs and packages that are portable to any Ada 95 compiler on any computer.

Source Code, 2/E
Feldman
©1996 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321314328 | ISBN-13: 9780321314321


Log in to the Instructor Resource Center

Login name: 

  Password: 

Forgot login/password?  |  Need to redeem an access code?

         

Instructor Resource Center File Download

This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.

Cancel                       I accept, proceed with download

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.