Data Structures and algorithms in Python

advertisement

Data Structures and algorithms in Python

Introduction

Data Structures and algorithms in Python

     The design and analysis of efficient data structures has long been recognized as a vital subject in computing and is part of the core curriculum of computer science and computer engineering undergraduate degrees. Data Structures and Algorithms in Python provides an introduction to data structures and algorithms, including their design, analysis, and implementation. This book is designed for use in a beginning level data structures course, or in an intermediate-level introduction to algorithms course. We discuss its use for such courses in more detail later in this preface. To promote the development of robust and reusable software, we have tried to take a consistent object-oriented viewpoint throughout this text. 

advertisement

Desired outcomes for readers of our book include that:

• They have knowledge of the most common abstractions for data collections (e.g., stacks, queues, lists, trees, maps).

• They understand algorithmic strategies for producing efficient realizations of common data structures.

• They can analyze algorithmic performance, both theoretically and experimentally, and recognize common trade-offs between competing strategies.

• They can wisely use existing data structures and algorithms found in modern programming language libraries.

• They have experience working with concrete implementations for most foundational data structures and algorithms.

• They can apply data structures and algorithms to solve complex problems.

Computer System Architecture

advertisement

Table of Contents

1 Python Primer

1.1 Python Overview

1.2 Objects in Python

1.3 Expressions, Operators, and Precedence

1.4 Control Flow

1.5 Functions

1.6 Simple Input and Output

1.7 Exception Handling

1.8 Iterators and Generators

1.9 Additional Python Conveniences

2 Object-Oriented Programming

2.1 Goals, Principles, and Patterns

2.2 Software Development

2.3 Class Definitions 

2.4 Inheritance

2.5 Namespaces and Object-Orientation

2.6 Shallow and Deep Copying

3 Algorithm Analysis

3.1 Experimental Studies

3.2 The Seven Functions Used in This Book

3.3 Asymptotic Analysis

3.4 Simple Justification Techniques

4 Recursion

4.1 Illustrative Examples

4.2 Analyzing Recursive Algorithms

4.3 Recursion Run Amok

4.4 Further Examples of Recursion

4.5 Designing Recursive Algorithms

4.6 Eliminating Tail Recursion

5 Array-Based Sequences

5.1 Python’s Sequence Types

5.2 Low-Level Arrays

5.3 Dynamic Arrays and Amortization

5.4 Efficiency of Python’s Sequence Types

5.5 Using Array-Based Sequences

5.6 Multidimensional Data Sets

6 Stacks, Queues, and Deques

6.1 Stacks

6.2 Queues

6.3 Double-Ended Queues

7 Linked Lists

8 Trees

9 Priority Queues

10 Maps, Hash Tables, and Skip Lists

11 Search Trees

12 Sorting and Selection

13 Text Processing

14 Graph Algorithms

15 Memory Management and B-Trees

Download full PDF in Comment section

advertisement

1 Comments

Previous Post Next Post