![[Book Cover]](../covergif/0131855883.gif)
|
Object-Oriented Introduction to Data Structures Using Eiffel, 1/e
Richard Wiener, Colorado Springs, CO
Published February, 1997 by Prentice Hall PTR (ECS Professional)
Copyright 1997, 528 pp.
Cloth
ISBN 0-13-185588-3
|
Sign up for future mailings on this subject.
See other books about:
Eiffel--Programming-Computer Science
Data Structures-Computer Science
|

Preface.
1. An Object-Oriented Approach To Problem Solving.
Abstract data types and classes. Encapsulationattributes and
routines. External and internal views of class. Inheritance.
A more technical example of inheritancea preview of data
structures and the Eiffel programming language.
Generic classes. Polymorphism and late-binding.
Application that features late bindingSpecification
AnalysisDesignEiffel implementationA final look at
polymorphism in this application.
Summary. Exercises. References.
2. An Overview of Eiffel.
Programming in Eiffel.
Creating and destroying objectsBasic typesReference
semantics versus value semanticsAssigning objectsCopying objects
CloningBasic operatorsBranchingIteration (loop)
Routines.
Basic input and output. Arrays. An overview of the components of
an Eiffel class. Creation.
Subclass creationMore advanced subclass creation.
Inheritance.
ExtensionSpecialization - The redefine subclause
Selective exportthe export subclauseRenaming inherited
routinesthe rename subclauseThe select subclause.
Abstract classes using Eiffel's deferred class facility. Storage
versus computation: attributes versus routines. Protecting and documenting
routinesassertions and programming by contract.
Account classes revisited with assertionsPropagation of
assertions through inheritance.
Summary. Exercises.
3. Arrays, Sorting and Strings.
ARRAY class. Sorting.
Sorting problems versus their instancesSelection-sort
algorithmMore on the efficiency of sorting algorithmsBubble
sortComb-sorta magic number and a fast variant of bubble-
sortInsertion-sortQuick-sortPartition algorithm.
Strings. String searchingsimple algorithm. Summary.
Exercises.
4. Stacks and Queues.
Container classes. Stack.
Static implementation of STACKDynamic implementation.
Queue. Summary. Exercises.
5. Lists.
Types of lists. Dynamic unordered list without duplicates.
The UNORDERED_LIST data abstractionInterface to
UNORDERED_LISTImplementation of class UNORDERED_LISTDiscussion of
class LIST_TYPEDetails of UNORDERED_LISTDiscussion of
UNORDERED_LIST.
Unordered list with duplicates.
Discussion of class UNORDERED_LIST_D.
Ordered list. Doubly-linked list. Stack revisited. The queue
revisited. The Deque. Priority queue. Summary. Exercises.
6. Recursion.
The mechanics of recursion.
First example of recursionSecond example of recursion
Third example of recursionFinal example of recursionpermutation
group.
Recursion used in design.
Binary Search of Sorted Arrays.
Summary. Exercises.
7. Applications of Stacks.
Permutation iterator. Infix to postfix conversion and function
evaluation.
Evaluation of postfix expressionsConversion from infix to
postfixImplementation of system that evaluates algebraic expressions.
Las Vegas Solitaire.
SpecificationsAnalysis and Implementation.
Summary. Exercises.
8. Application of Queues.
Queuing theory. Random number generator. Simple queuing
application. Summary. Exercises.
9. Applications of Lists.
Long integers.
The internal representation of LONG_INTEGERAddition of long
integersConstruction of class LONG_INTEGERImplementation of
creation routine makeImplementation of the addition operation
Implementation of as_string command.
Polynomials.
Class POLYNOMIALCreation routine for POLYNOMIALThe
169>+170> queryThe differentiate queryThe integrate query.
Conclusions. Exercises.
10. Binary Trees
What is a binary tree? Tree traversal. Path length.
Implementation of binary tree.
The constrained generic parameter in BINARY_TImplementation
of commands preorder, inorder, and postorderImplementation of
average_internal_path_length.
Search trees.
InsertionDeletionSearch tree implementation.
The need for tree balancing. Summary. Exercises.
11. Balanced Search Trees.
Rotations. AVL trees.
AVL insertionPattern 1Pattern 2Insertion
algorithmExplanation of insertion algorithmDeletion algorithm.
Weight-balanced trees.
Conceptual frameworkImplementation of insertion.
Summary. Exercises. Reference.
12. Unordered Collections.
The BIT data type.
Summary of BIT_REF features.
The Set abstraction. Set of integers using BIT type.
Discussion of Listing 12.3.
Hash functions and tables.
Design of a good hash functionImplementation of hash
functionCollision-resolution algorithmsSimulation that compares
linear with coalesced chaining.
Summary. Exercises.
13. Applications of Binary Trees
Heap sorting.
The heap data structureOverview of heapsort algorithm
The procedure formheapThe procedure rebuildheapSpeed of heapsort
versus quicksortConcluding remarks about heapsort.
A learningtree. Summary. Exercises.
Interface to String Class.
|