Object-Oriented Introduction to Data Structures Using Eiffel - Richard Wiener

Object-Oriented Introduction to Data Structures Using Eiffel

(Autor)

Buch | Softcover
528 Seiten
1997
Addison Wesley (Verlag)
978-0-13-185588-5 (ISBN)
103,70 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
A text book directed at CS2, the second course is a computer science curriculum and comparison release to the author's object-oriented Introduction to Computer Science using Eiffel. It presents the basic principles of Data Structures from an object-oriented perspective using Eiffel, and relatively easy to learn object-oriented programming languages. As a data alternative to C and C++.
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 Eiffel's 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++.

RICHARD S. WIENER is also author of the companion text, An Object-Oriented Introduction to Computer Science Using Eiffel.

Preface.


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.

Erscheint lt. Verlag 24.2.1997
Reihe/Serie Prentice-Hall Object-Oriented Series
Verlagsort Boston
Sprache englisch
Maße 176 x 235 mm
Gewicht 750 g
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Software Entwicklung Objektorientierung
Informatik Theorie / Studium Algorithmen
ISBN-10 0-13-185588-3 / 0131855883
ISBN-13 978-0-13-185588-5 / 9780131855885
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
objektorientierte Entwicklung modularer Maschinen für die digitale …

von Thomas Schmertosch; Markus Krabbes; Christian Zinke-Wehlmann

Buch | Hardcover (2024)
Hanser (Verlag)
44,99
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

Buch (2023)
Hanser, Carl (Verlag)
39,99
Principles and Practice Using C++

von Bjarne Stroustrup

Buch | Softcover (2024)
Addison Wesley (Verlag)
85,95