Cart
Free US shipping over $10
Proud to be B-Corp

Algorithms, Data Structures, and Problem Solving with C++ Mark A. Weiss

Algorithms, Data Structures, and Problem Solving with C++ By Mark A. Weiss

Algorithms, Data Structures, and Problem Solving with C++ by Mark A. Weiss


$4.39
Condition - Good
Only 1 left

Summary

This text provides explanations both of problem solving and algorithms using C++. The book's theoretical perspective emphasizes software engineering and object-oriented programming and is designed to encourage readers to think abstractly.

Faster Shipping

Get this product faster from our US warehouse

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

Algorithms, Data Structures, and Problem Solving with C++ by Mark A. Weiss

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. * Includes end-of-chapter glossaries, summaries of common errors, and a variety of exercises. 0805316663B04062001

About Mark A. 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.



0805316663AB04062001

Table of Contents

I. OBJECTS AND C++. 1. Pointers, Arrays, and Structures. What Are Pointers, Arrays, and Structures? Pointer Syntax in C++. Arrays. Dynamic Allocation of Arrays: new and delete. Memory Exhaustion. Pointer Arithmetic and Pointer Hopping. Reference Variables. Structures. 2. Objects and Classes. What Is Object-Oriented Programming? A Simple Example. A More Substantial Class: the Bit Array. Exploring More Details of the Class Interface. Additional C++ Class Features. Implementing a Class String. Recap: What Gets Called and What Are the Defaults? Separate Compilation. 3. Templates. What Is a Template? Template Functions. Template Classes. Fancy Templates. Bugs Associated with Templates. 4. Inheritance. What Are Polymorphism and Inheritance? A Derived Class: BoundedVector. Public, Private, and Protected Members and Inheritance. Static and Dynamic Binding. Constructors and Destructors: Virtual or not Virtual? Abstract Classes: A Shape Class. Multiple Inheritance. II. ALGORITHMS AND BUILDING BLOCKS. 5. Algorithm Analysis. What Is Algorithm Analysis? Examples of Algorithm Running Times. The Maximum Contiguous Subsequence Sum Problem. General Big-Oh Analysis. The Logarithm. Static Searching Problem. Checking an Algorithm Analysis. Limitations of Big-Oh Analysis. 6. Data Structures. Why Do We Need Data Structures? Stacks. Queues. Linked Lists. General Trees. Binary Search Trees. Hash Tables. Priority Queues. 7. Recursion. What Is Recursion? Background: Proofs by Mathematical Induction. Basic Recursion. Numerical Applications. Divide and Conquer. Dynamic Programming. Backtracking. 8. Sorting Algorithms. Why Is Sorting Important? Preliminaries. Analysis of Insertion Sort and Other Simple Sorts. Shellsort. Mergesort. Quicksort. Quickselect. A Lower Bound for Sorting. Indirect Sorting. 9. Randomization. Why Do We Need Random Numbers? Random Number Generators. Nonuniform Random Numbers9.4 : Generating a Random Permutation. Randomized Algorithms. Randomized Primality Testing. III. APPLICATIONS. 10. Fun and Games. Word Search Puzzles. The Game of Tic-Tac-Toe. 11. Stacks and Compilers. Balanced Symbol Checker. A Simple Calculator. 12. Utilities. File Compression. A Cross-Reference Generator. 13. Simulation. The Josephus Problem. Event-Driven Simulation. Graphs and Paths. Definitions. Unweighted Shortest Path Problem. Positive Weighted Shortest Path Problem. General Weighted Shortest Path Problem. Path Problems in Acyclic Graphs. IV. IMPLEMENTATIONS. 15. Stacks and Queues. Dynamic Array Implementations. Linked List Implementations. Comparison of the Two Methods. Double-Ended Queues. 16. Linked Lists. Basic Ideas. C++ Implementation. Doubly Linked Lists and Circular Linked Lists. Sorted Linked Lists. 17. Trees. General Trees. Binary Trees. Recursion and Trees. Tree Traversal: Iterator Classes. 18. Binary Search Trees. Basic Ideas. Order Statistics. Analysis of Binary Search Tree Operations. AVL Trees. Red Black Trees. AA Trees. B-Trees. 19. Hash Tables. Basic Ideas. Hash Function. Linear Probing. Quadratic Probing. Separate Chaining. 20. A Priority Queue: The Binary Heap. Basic Ideas. Implementation of the Basic Operations. FixHeap: Linear Time Heap Construction. Advanced Operations: DecreaseKey and Merge. Internal Sorting: Heapsort. External Sorting. V. ADVANCED DATA STRUCTURES. 21. Splay Trees. Self-adjustment and Amortized Analysis. The Basic Bottom-Up Splay Trees. Basic Splay Tree Operations. Analysis of Bottom-Up Splaying. Top-Down Splay Trees. Implementation of Top-Down Splay Trees. Comparison of the Splay Tree with Other Search Trees. 22. Merging Priority Queues. The Skew Heap. The Pairing Heap. 23. The Disjoint Set Class. Equivalence Relations. Dynamic Equivalence. The Quick-Find Algorithm. The Quick-Union Algorithm. C++ Implementation. Worst Case for Union-by-Rank and Path Compression. APPENDICES. Appendix A: Basic C++. Appendix B: Operators. Appendix C: Some Library Routines. Appendix D: Modifications for Exceptions. Index. 0805316663T04062001

Additional information

CIN0805316663G
9780805316667
0805316663
Algorithms, Data Structures, and Problem Solving with C++ by Mark A. Weiss
Used - Good
Paperback
Pearson Education (US)
19951124
820
N/A
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a used book - there is no escaping the fact it has been read by someone else and it will show signs of wear and previous use. Overall we expect it to be in good condition, but if you are not entirely satisfied please get in touch with us

Customer Reviews - Algorithms, Data Structures, and Problem Solving with C++