Object-Oriented Introduction to Data Structures Using Eiffel

€ 75,49
Bisher € 79,68
Lieferbar innert 2 Wochen
Februar 1997



Introduces object-oriented data structures using Eiffel, a language that is ideal for the beginning programmer.KEY TOPICS:Introduces abstract data types, encapsulation, classes, external and internal views of classes, inheritance and polymorphism. Presents an overview of the Eiffel Language and its advantages. Introduces Eiffels ARRAY and STRING classes and several standard sorting algorithms. Introduces stack and queue abstractions, in both static and dynamic implementations. Presents the basics of recursion and lists. Also introduces binary trees and search trees, presenting important algorithms for balancing search trees.MARKET:Anyone who wishes to learn object-oriented techniques without encountering the complexity of C++.


1. An Object-Oriented Approach To Problem Solving. Abstract data types and classes. Encapsulation-attributes and routines. External and internal views of class. Inheritance. A more technical example of inheritance-a preview of data structures and the Eiffel programming language. Generic classes. Polymorphism and late-binding. Application that features late binding-Specification- Analysis-Design-Eiffel implementation-A final look at polymorphism in this application. Summary. Exercises. References.
2. An Overview of Eiffel. Programming in Eiffel. Creating and destroying objects-Basic types-Reference semantics versus value semantics-Assigning objects-Copying objects --Cloning-Basic operators-Branching-Iteration (loop) -Routines. Basic input and output. Arrays. An overview of the components of an Eiffel class. Creation. Subclass creation-More advanced subclass creation. Inheritance. Extension-Specialization - The redefine subclause- Selective export-the export subclause-Renaming inherited routines-the rename subclause-The select subclause. Abstract classes using Eiffel's deferred class facility. Storage versus computation: attributes versus routines. Protecting and documenting routines-assertions and programming by contract. Account classes revisited with assertions-Propagation of assertions through inheritance. Summary. Exercises.
3. Arrays, Sorting and Strings. ARRAY class. Sorting. Sorting problems versus their instances-Selection-sort algorithm-More on the efficiency of sorting algorithms-Bubble sort-Comb-sort-a magic number and a fast variant of bubble- sort-Insertion-sort-Quick-sort-Partition algorithm. Strings. String searching-simple algorithm. Summary. Exercises.
4. Stacks and Queues. Container classes. Stack. Static implementation of STACK-Dynamic implementation. Queue. Summary. Exercises.
5. Lists. Types of lists. Dynamic unordered list without duplicates. The UNORDERED_LIST data abstraction-Interface to UNORDERED_LIST-Implementation of class UNORDERED_LIST-Discussion of class LIST_TYPE-Details of UNORDERED_LIST-Discussion 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 recursion-Second example of recursion- Third example of recursion-Final example of recursion-permutation 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 expressions-Conversion from infix to postfix-Implementation of system that evaluates algebraic expressions. Las Vegas Solitaire. Specifications-Analysis 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_INTEGER-Addition of long integers-Construction of class LONG_INTEGER-Implementation of creation routine make-Implementation of the addition operation- Implementation of as_string command. Polynomials. Class POLYNOMIAL-Creation routine for POLYNOMIAL-The 169>+170> query-The differentiate query-The 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_T-Implementation of commands preorder, inorder, and postorder-Implementation of average_internal_path_length. Search trees. Insertion-Deletion-Search tree implementation. The need for tree balancing. Summary. Exercises.
11. Balanced Search Trees. Rotations. AVL trees. AVL insertion-Pattern 1-Pattern 2-Insertion algorithm-Explanation of insertion algorithm-Deletion algorithm. Weight-balanced trees. Conceptual framework-Implementation 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 function-Implementation of hash function-Collision-resolution algorithms-Simulation that compares linear with coalesced chaining. Summary. Exercises.
13. Applications of Binary Trees Heap sorting. The heap data structure-Overview of heapsort algorithm- The procedure formheap-The procedure rebuildheap-Speed of heapsort versus quicksort-Concluding remarks about heapsort. A "learning"tree. Summary. Exercises. Interface to String Class.


RICHARD S. WIENER is also author of the companion text, "An Object-Oriented Introduction to Computer Science Using Eiffel."
EAN: 9780131855885
ISBN: 0131855883
Untertitel: Sprache: Englisch.
Erscheinungsdatum: Februar 1997
Seitenanzahl: 528 Seiten
Format: kartoniert
Es gibt zu diesem Artikel noch keine Bewertungen.Kundenbewertung schreiben