did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780470618295

Data Structures and Algorithms Using Python

by
  • ISBN13:

    9780470618295

  • ISBN10:

    0470618299

  • Format: Paperback
  • Copyright: 2010-12-01
  • Publisher: Wiley
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $137.75
We're Sorry.
No Options Available at This Time.

Summary

More and more programmers are turning to Python and this book will give them the understanding they need. Necaise introduces the basic array structure and explores the fundamentals of implementing and using multi-dimensional arrays. The underlying mechanisms of many of Python's built-in data structures and constructs are covered. A number of ADTs and applications are discussed as threads throughout the book to allow for multiple implementations as new data structures are introduced. Real-world applications of the various chapter topics are also presented. This gives programmers complete coverage of abstraction and the basic data structures and algorithms in the Python language.

Table of Contents

Abstract Data Typesp. 1
Introductionp. 1
Abstractionsp. 2
Abstract Data Typesp. 4
Data Structuresp. 5
The Date ADTp. 6
Preconditions and Postconditionsp. 8
Using the ADTp. 8
Implementing the ADTp. 8
The Bag ADTp. 14
Using the ADTp. 15
Selecting a Data Structurep. 16
The Class Definitionp. 18
Iteratorsp. 19
The Set ADTp. 22
Using the ADTp. 24
Implementing the ADTp. 25
The Map ADTp. 28
Defining the ADTp. 29
Implementing the Map ADTp. 30
Alternate Implementationp. 33
Application: Histogramsp. 35
Building a Histogramp. 37
Implementing the Histogram ADTp. 37
Programming Problemsp. 40
Arrays and Vectorsp. 43
The Array Structurep. 43
Simulating an Arrayp. 44
The Array ADTp. 45
Implementing the ADTp. 46
The Python List (Vector)p. 47
Multi-Dimensional Arraysp. 54
The MultiArray ADTp. 54
Data Organizationp. 55
Variable Length Argumentsp. 59
MultiArray Implementationp. 60
The Matrix ADTp. 64
Matrix Operationsp. 65
Implementing the ADTp. 67
Application: The Game of Lifep. 69
Rules of the Gamep. 70
Designing a Solutionp. 72
ADT Implementationp. 74
Exercisesp. 77
Programming Problemsp. 78
Algorithm Analysisp. 81
Complexity Analysisp. 82
Big-O Notationp. 83
Classes of Algorithmsp. 87
Empirical Analysisp. 88
Evaluating ADT Implementationsp. 88
Evaluating the Python Listp. 89
Evaluating the Set ADTp. 91
Searchingp. 92
Linear Searchp. 92
Binary Searchp. 95
Working with Ordered Listsp. 99
Building An Ordered Listp. 99
Merging Ordered Listsp. 100
The Set ADT Revisitedp. 106
Application: The Sparse Matrixp. 112
Implementationp. 112
Analysisp. 116
Exercisesp. 118
Programming Problemsp. 120
The Linked Listp. 123
A Linked Structurep. 124
The Singly-Linked Listp. 124
Basic Operationsp. 124
Evaluating the Linked Listp. 124
The Bag ADT Revisitedp. 124
Implementation Detailsp. 124
Linked List Iteratorp. 124
Using a Tail Pointerp. 124
The Ordered Linked Listp. 124
The Sparse Matrix Revisitedp. 124
The New Implementationp. 124
Comparing Implementationsp. 124
Application: Polynomialsp. 124
Polynomial Operationsp. 124
The Polynomial ADTp. 124
ADT Implementationp. 124
Exercisesp. 124
Programming Problemsp. 124
Advanced Linked Listsp. 125
Doubly-Linked Listp. 126
Organizationp. 126
List Operationsp. 126
Circular Linked Listp. 126
Organizationp. 126
List Operationsp. 126
Multi-Linked Listsp. 126
Multiple Chainsp. 126
The Sparse Matrixp. 126
Complex Iteratorsp. 126
Application: Text Editorp. 126
Typical Editor Operationsp. 126
The Edit Buffer ADTp. 126
Implementing the ADTp. 126
Exercisesp. 126
Programming Problemsp. 126
Stacksp. 127
The Stack ADTp. 128
Implementing the Stackp. 128
Vector Basedp. 128
Linked List Versionp. 128
Stack Applicationsp. 128
Balanced Delimitersp. 128
Evaluating Postfix Expressionsp. 128
Application: Solving a Mazep. 128
Backtrackingp. 128
Designing a Solutionp. 128
The Maze ADTp. 128
ADT Implementationp. 128
Exercisesp. 128
Programming Problemsp. 128
Queuesp. 129
The Queue ADTp. 129
Implementing the Queuep. 129
Vector Basedp. 129
Circular Arrayp. 129
Linked List Versionp. 129
The Priority Queuep. 129
Application: Computer Simulationsp. 129
Airline Ticket Counterp. 129
Class Specificationsp. 129
Exercisesp. 129
Programming Problemsp. 129
Hash Tablesp. 131
Introductionp. 131
Hash Functionsp. 131
Open Addressingp. 131
Linear Probingp. 131
Collision Resolutionp. 131
Bucket Hashingp. 131
Hashing Efficiencyp. 131
The Map ADT Revisitedp. 131
Application: The Color Histogramp. 131
Exercisesp. 131
Programming Problemsp. 131
Recursionp. 133
Recursive Functionsp. 133
Properties of Recursionp. 133
Classic Example: The Factorial Functionp. 133
Greatest Common Divisorp. 133
Recursion and Stacksp. 133
The Towers of Hanoip. 133
Backtracking Revisitedp. 133
The Eight-Queens Problemp. 133
Solving the Four-Queensp. 133
Recursive Solutionp. 133
Application: Sudoku Puzzlesp. 133
Exercisesp. 133
Programming Problemsp. 133
Binary Trees and Heapsp. 135
Tree Structurep. 135
The Binary Treep. 135
Traversalsp. 135
Arithmetic Expresssionsp. 135
Tree Threadingp. 135
Heapsp. 135
Insertionsp. 135
Removalsp. 135
Evaluating the Heapp. 135
The Priority Queue Revisitedp. 135
Application: Morse Codep. 135
Exercisesp. 135
Programming Problemsp. 135
Advanced Search Treesp. 137
The Binary Search Treep. 138
Searchingp. 138
Insertionsp. 138
Deletionsp. 138
Evaluating the BSTp. 138
AVL Treesp. 138
Insertionsp. 138
Deletionsp. 138
Evaluating the AVL Treep. 138
2-3 Treesp. 138
Splay Treesp. 138
Application: Improved Map ADTp. 138
Exercisesp. 138
Programming Problemsp. 138
Sorting Algorithmsp. 139
The Simple Algorithmsp. 140
Bubble Sortp. 140
Selection Sortp. 140
Insertion Sortp. 140
Radix Sortp. 140
Basic Algorithmp. 140
Bucket Sortingp. 140
Divide and Conquerp. 140
Merge Sortp. 140
Quick Sortp. 140
Heap Sortp. 140
Application: Empirical Analysisp. 140
Exercisesp. 140
Programming Problemsp. 140
Python Reviewp. 141
Basic Conceptsp. 141
Functionsp. 141
Sequence Typesp. 141
Classesp. 141
Copying Objectsp. 141
Exceptionsp. 141
Object-Oriented Programmingp. 143
Introductionp. 143
Encapsulationp. 143
Inheritancep. 143
Polymorphismp. 143
Table of Contents provided by Publisher. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program