Based on the authors' market leading data structures books in Java and C++, this book offers a comprehensive, definitive introduction to data structures in Python by authoritative authors. 'Data Structures and Algorithms in Python' is the first authoritative object-oriented book available for Python data structures. Designed to provide a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation, the text will maintain the same general structure as 'Data Structures and Algorithms in Java' and 'Data Structures and Algorithms in C++.' Begins by discussing Python's conceptually simple syntax, which allows for a greater focus on concepts. Employs a consistent object-oriented viewpoint throughout the text. Presents each data structure using ADTs and their respective implementations and introduces important design patterns as a means to organize those implementations into classes, methods, and objects. Provides a thorough discussion on the analysis and design of fundamental data structures. Includes many helpful Python code examples, with source code provided on the website. Uses illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Provides hundreds of exercises that promote creativity, help readers learn how to think like programmers, and reinforce important concepts. Contains many Python-code and pseudo-code fragments, and hundreds of exercises, which are divided into roughly 40% reinforcement exercises, 40% creativity exercises, and 20% programming projects. This all-new 'Data Structures and Algorithms in Python' is designed to provide an introduction to data structures and algorithms, including their design, analysis, and implementation. The authors take advantage of the beauty and simplicity of Python to present executable source code that is clear and concise. Furthermore, a consistent object-oriented viewpoint is retained throughout the book, including the use of inheritance, both to maximize code reuse and to draw attention to the clear similarities and differences of various abstract data types and algorithmic approaches. This is a 'sister' book to Goodrich & Tamassia's 'Data Structures and Algorithms in Java' and Goodrich, Tamassia and Mount's 'Data Structures and Algorithms in C++.' This Python version retains much of the same pedagogical approach and general structure as the Java and C++ versions, so that curriculums that teach data structures in Python, Java, and C++ can share the same core syllabus. Key Features of this Book A primer that reviews the basics of programming in Python (Chapter 1), followed by a separate introduction to 'object-oriented' programming in Python (Chapter 2). Extensive coverage of recursion (Chapter 4). A chapter describing the array-based underpinnings of Python's standard list, string, and tuple classes (Chapter 5), including both theoretical and empirical analyses of their efficiencies. Source code with complete implementations of the majority of data structures and algorithms described in the book; the code follows modern standards for Python 3, and makes use of the standard collections module. 500 illustrations that present data structures and algorithms in a clear, visual manner. More than 750 exercises, divided into categories of reinforcement, creativity, and projects. About the cover: The cover art is based on an indigenous Australian painting style portraying what is known as Dreamtime. This style is traditionally iconic and representative of connections between points of interest or concepts; hence, it is a fitting way to capture at a high level the connections and points of interest used to visualize data structures and algorithms.