Data Structures & Algorithms in Python

Learn how to use data structures effectively to write high performance Python programs and algorithms!

This text is packed with figures and easy to understand descriptions of how data structures help organize and accelerate the programs that power today's information systems. It teaches you how to choose the right data structure for an application and how each structure operates.

Understanding how efficiently data structures operate helps you judge how they perform on larger and larger data sets. The order of complexity of algorithms determines what scale of data they can handle. This book explains how to measure that complexity and gently introduces the math needed to understand it.

The widespread adoption of Python makes this text accessible to most novice programmers. If you haven't used Python yet but have written programs in other object-oriented languages, a quick introduction at the beginning teaches you the basics. All of the code is available from the Downloads page so you can try out the examples.

Best of all, an open-source set of visualization tools gives you direct control of each of the data structures. You can try out different operations and step through the code to see how the structures and algorithms work together to produce results.

Read more about the full set of features and benefits of visualizations this book offers. Please contact us with any questions, comments, or requests.


Order your copy today at one of these sites worldwide Pearson/InformIT, Abe Books, Akademika, Amazon, Angus & Robertson, Barnes and Noble, Blackwell's, Booktopia, BuscaLibre, Chegg, Dussman, Dymocks, Hive, IBS, JPC, Standaard Boekhandel, Thriftbooks, Tomlinsons, W H Smith, Waterstones, and more.


Data Structures & Algorithms in Python brings the core concepts of computer science to life with extensive descriptions, full calor figures, richly commented code, and interactive visualizations.

Inserting an item into a circular queue

Each chapter introduces a kind of data structure or algorithm category, starting with the most basic, the array. Readers build mastery of each topic from the text, illustrations, code, and visualizations. At the end of each chapter, review questions with answers, thought excercises, and programming projects reinforce the new concepts.

We cover all the fundamental data structures:

  • Arrays
  • Stacks
  • Queues
  • Priority Queues
  • Linked lists
    • Singly linked
    • Doubly linked
    • Double-ended
    • Circular
  • Iterators
  • Trees
    • Binary search trees
    • 2-3-4 trees
    • AVL trees
    • Red-black trees
  • Hash tables
  • Spatial data structures
    • Point lists
    • Grids
    • Quadtrees
  • Heaps
  • Unweighted graphs
  • Weighted graphs

Algorithms covered:

  • Sorting
    • Bubble sort
    • Selection sort
    • Insertion sort
    • Shellsort
    • Mergesort
    • Quicksort
    • Partitioning
    • Radix sort
    • Timsort
  • Recursion (when to use and how to eliminate)
  • Parsing arithmetic expressions
  • Binary search
  • Tower of Hanoi
  • Huffman coding
  • Minimum spanning tree
  • Topological sorting
  • Shortest path
  • All pairs shortest path


Everyone learns better by doing. The visualizations developed for this book let you work with the individual operations of each data structure. The visualization tools display the various pieces of data as they are manipulated by different algorithms. The same code as shown in the text appears with highlighting to show the execution. Controls let you slow down, speed up, and step through each algorithm.

Animation of the Heap Visualization Tool during Heapify

See the visualizations live on the visualization page where you can also learn how to download them to run on your local machine.


On the downloads archive page you can find all versions of:

  • The visualizations bundled for macOS and Windows.
  • The source code shown in the textbook, grouped by chapter.
  • All current errata availble for the textbook.
  • The figures used as prototypes of figures in the textbook. These are great for making slides for lectures.

Please contact us if you seek other materials. Instructors adopting the text may request lecture slides and solutions to the programming projects.

Contact Us

Please let us know what you think about the book and other materials. Use the button below to send the authors questions or comments.

If you would like to request the sample program solutions, please press the button below and provide us your name with a link to a page showing your status as a qualified instructor.

  • Contact the authors

Cover image of Data Structures & Algorithms in Python