Tous nos rayons

Déjà client ? Identifiez-vous

Mot de passe oublié ?

Nouveau client ?

CRÉER VOTRE COMPTE
Algorithms, Data Structures, and Problem Solving with C++
Ajouter à une liste

Librairie Eyrolles - Paris 5e
Indisponible

Algorithms, Data Structures, and Problem Solving with C++

Algorithms, Data Structures, and Problem Solving with C++

Mark Allen Weiss

820 pages, parution le 15/06/1996

Résumé

Experienced author and teacher Mark Allen Weiss now brings his expertise to the CS2 course with Algorithms, Data Structures, and Problem Solving with C++, which introduces both data structures and algorithm design from the viewpoint of abstract thinking and problem solving. The author chooses C++ as the language of implementation, but the emphasis of the book itself remains on uniformly accepted CS2 topics such as pointers, data structures, algorithm analysis, and increasingly complex programming projects.

Algorithms, Data Structures, and Problem Solving with C++ is the first CS2 textbook that clearly separates the interface and implementation of data structures. The interface and running time of data structures are presented first, and students have the opportunity to use the data structures in a host of practical examples before being introduced to the implementations. This unique approach enhances the ability of students to think abstractly.

Features

  • Retains an emphasis on data structures and algorithm design while using C++ as the language of implementation.
  • Reinforces abstraction by discussing interface and implementations of data structures in different parts of the book.
  • Incorporates case studies such as expression evaluation, cross-reference generation, and shortest path calculations.
  • Provides a complete discussion of time complexity and Big-Oh notation early in the text.
  • Gives the instructor flexibility in choosing an appropriate balance between practice, theory, and level of C++ detail. Contains optional advanced material in Part V.
  • Covers classes, templates, and inheritance as fundamental concepts in sophisticated C++ programs.
  • Contains fully functional code that has been tested on g++2.6.2, Sun 3.0.1, and Borland 4.5 compilers. Code is integrated into the book and also available by ftp December 1995.
  • Includes end-of-chapter glossaries, summaries of common errors, and a variety of exercises.

TABLE OF CONTENTS

Part I: Objects and C++

Chapter 1: Pointers, Arrays, and Structures
  1. What Are Pointers, Arrays, and Structures?
  2. Pointer Syntax in C++
  3. Arrays
  4. Dynamic Allocation of Arrays: new[] and delete[]
  5. Memory Exhaustion
  6. Pointer Arithmetic and Pointer Hopping
  7. Reference Variables
  8. Structures

Chapter 2: Objects and Classes
  1. What Is Object-Oriented Programming?
  2. A Simple Example
  3. A More Substantial Class: the Bit Array
  4. Exploring More Details of the Class Interface
  5. Additional C++ Class Features
  6. Implementing a Class String
  7. Recap: What Gets Called and What Are the Defaults?
  8. Separate Compilation

Chapter 3: Templates
  1. What Is a Template?
  2. Template Functions
  3. Template Classes
  4. Fancy Templates
  5. Bugs Associated with Templates

Chapter 4: Inheritance
  1. What Are Polymorphism and Inheritance?
  2. A Derived Class: BoundedVector
  3. Public, Private, and Protected Members and Inheritance
  4. Static and Dynamic Binding
  5. Constructors and Destructors: Virtual or not Virtual?
  6. Abstract Classes: A Shape Class
  7. Multiple Inheritance

Part II: Algorithms and Building Blocks

Chapter 5: Algorithm Analysis
  1. What Is Algorithm Analysis?
  2. Examples of Algorithm Running Times
  3. The Maximum Contiguous Subsequence Sum Problem
  4. General Big-Oh Analysis
  5. The Logarithm
  6. Static Searching Problem
  7. Checking an Algorithm Analysis
  8. Limitations of Big-Oh Analysis

Chapter 6: Data Structures
  1. Why Do We Need Data Structures?
  2. Stacks
  3. Queues
  4. Linked Lists
  5. General Trees
  6. Binary Search Trees
  7. Hash Tables
  8. Priority Queues

Chapter 7: Recursion
  1. What Is Recursion?
  2. Background: Proofs by Mathematical Induction
  3. Basic Recursion
  4. Numerical Applications
  5. Divide and Conquer
  6. Dynamic Programming
  7. Backtracking

Chapter 8: Sorting Algorithms
  1. Why Is Sorting Important?
  2. Preliminaries
  3. Analysis of Insertion Sort and Other Simple Sorts
  4. Shellsort
  5. Mergesort
  6. Quicksort
  7. Quickselect
  8. A Lower Bound for Sorting
  9. Indirect Sorting

Chapter 9: Randomization
  1. Why Do We Need Random Numbers?
  2. Random Number Generators
  3. Nonuniform Random Numbers 9.4 : Generating a Random Permutation
  4. Randomized Algorithms
  5. Randomized Primality Testing

Part III: Applications

Chapter 10: Fun and Games
  1. Word Search Puzzles
  2. The Game of Tic-Tac-Toe

Chapter 11: Stacks and Compilers
  1. Balanced Symbol Checker
  2. A Simple Calculator

Chapter 12: Utilities
  1. File Compression
  2. A Cross-Reference Generator

Chapter 13: Simulation
  1. The Josephus Problem
  2. Event-Driven Simulation

Chapter 14: Graphs and Paths
  1. Definitions
  2. Unweighted Shortest Path Problem
  3. Positive Weighted Shortest Path Problem
  4. General Weighted Shortest Path Problem
  5. Path Problems in Acyclic Graphs

Part IV: Implementations

Chapter 15: Stacks and Queues
  1. Dynamic Array Implementations
  2. Linked List Implementations
  3. Comparison of the Two Methods
  4. Double-Ended Queues

Chapter 16: Linked Lists
  1. Basic Ideas
  2. C++ Implementation
  3. Doubly Linked Lists and Circular Linked Lists
  4. Sorted Linked Lists

Chapter 17: Trees
  1. General Trees
  2. Binary Trees
  3. Recursion and Trees
  4. Tree Traversal: Iterator Classes

Chapter 18: Binary Search Trees
  1. Basic Ideas
  2. Order Statistics
  3. Analysis of Binary Search Tree Operations
  4. AVL Trees
  5. Red Black Trees
  6. AA Trees
  7. B-Trees

Chapter 19: Hash Tables
  1. Basic Ideas
  2. Hash Function
  3. Linear Probing
  4. Quadratic Probing
  5. Separate Chaining

Chapter 20 : A Priority Queue: The Binary Heap
  1. Basic Ideas
  2. Implementation of the Basic Operations
  3. FixHeap: Linear Time Heap Construction
  4. Advanced Operations: DecreaseKey and Merge
  5. Internal Sorting: Heapsort
  6. External Sorting

Part V: Advanced Data Structures

Chapter 21: Splay Trees
  1. Self-adjustment and Amortized Analysis
  2. The Basic Bottom-Up Splay Trees
  3. Basic Splay Tree Operations
  4. Analysis of Bottom-Up Splaying
  5. Top-Down Splay Trees
  6. Implementation of Top-Down Splay Trees
  7. Comparison of the Splay Tree with Other Search Trees

Chapter 22: Merging Priority Queues
  1. The Skew Heap
  2. The Pairing Heap

Chapter 23: The Disjoint Set Class
  1. Equivalence Relations
  2. Dynamic Equivalence
  3. The Quick-Find Algorithm
  4. The Quick-Union Algorithm
  5. C++ Implementation
  6. Worst Case for Union-by-Rank and Path Compression

Appendix A: Basic C++
Appendix B: Operators
Appendix C: Some Library Routines
Appendix D: Modifications for Exceptions

Index

L'auteur - Mark Allen Weiss

Mark Allen Weiss is a Professor in the School of Computer Science at Florida International University. He received his Ph.D. in Computer Science from Princeton University where he studied under Robert Sedgewick. Dr.Weiss has received FIU's Excellence in Research Award, as well as the Teaching Incentive Program Award, which was established by the Florida Legislature to recognize teaching excellence. Mark Allen Weiss is on the Advanced Placement Computer Science Development Committee. He is the successful author of Algorithms, Data Structures, and Problem Solving with C++ and the series Data Structures and Algorithm Analysis in Pascal, Ada, C, and C++, with Addison-Wesley.

Caractéristiques techniques

  PAPIER
Éditeur(s) Addison Wesley
Auteur(s) Mark Allen Weiss
Parution 15/06/1996
Nb. de pages 820
Format 19,5 x 24
Couverture Relié
Poids 1400g
EAN13 9780805316667

Avantages Eyrolles.com

Livraison à partir de 0,01 en France métropolitaine
Paiement en ligne SÉCURISÉ
Livraison dans le monde
Retour sous 15 jours
+ d'un million et demi de livres disponibles
satisfait ou remboursé
Satisfait ou remboursé
Paiement sécurisé
modes de paiement
Paiement à l'expédition
partout dans le monde
Livraison partout dans le monde
Service clients sav@commande.eyrolles.com
librairie française
Librairie française depuis 1925
Recevez nos newsletters
Vous serez régulièrement informé(e) de toutes nos actualités.
Inscription