{"product_id":"data-structures-and-algorithms-in-python-isbn-9781118290279","title":"Data Structures and Algorithms in Python","description":"\u003cp\u003eBased on the authors' market leading data structures books in Java and C++, this textbook offers a comprehensive, definitive introduction to data structures in Python by respected authors. \u003cb\u003e\u003ci\u003eData Structures and Algorithms in Python\u003c\/i\u003e\u003c\/b\u003e is the first mainstream object-oriented book available for the Python data structures course.  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 \u003ci\u003eData Structures and Algorithms in Java\u003c\/i\u003e and \u003ci\u003eData Structures and Algorithms in C++.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003ePreface v\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Python Primer 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Python Overview 2\u003c\/p\u003e \u003cp\u003e1.2 Objects in Python 4\u003c\/p\u003e \u003cp\u003e1.3 Expressions, Operators, and Precedence 12\u003c\/p\u003e \u003cp\u003e1.4 Control Flow 18\u003c\/p\u003e \u003cp\u003e1.5 Functions 23\u003c\/p\u003e \u003cp\u003e1.6 Simple Input and Output 30\u003c\/p\u003e \u003cp\u003e1.7 Exception Handling 33\u003c\/p\u003e \u003cp\u003e1.8 Iterators and Generators 39\u003c\/p\u003e \u003cp\u003e1.9 Additional Python Conveniences 42\u003c\/p\u003e \u003cp\u003e1.10 Scopes and Namespaces 46\u003c\/p\u003e \u003cp\u003e1.11 Modules and the Import Statement 48\u003c\/p\u003e \u003cp\u003e1.12 Exercises 51\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Object-Oriented Programming 56\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Goals, Principles, and Patterns 57\u003c\/p\u003e \u003cp\u003e2.2 Software Development 62\u003c\/p\u003e \u003cp\u003e2.3 Class Definitions 69\u003c\/p\u003e \u003cp\u003e2.4 Inheritance 82\u003c\/p\u003e \u003cp\u003e2.5 Namespaces and Object-Orientation 96\u003c\/p\u003e \u003cp\u003e2.6 Shallow and Deep Copying101\u003c\/p\u003e \u003cp\u003e2.7 Exercises 103\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Algorithm Analysis 109\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Experimental Studies 111\u003c\/p\u003e \u003cp\u003e3.1.1 Moving Beyond Experimental Analysis 113\u003c\/p\u003e \u003cp\u003e3.2 The Seven Functions Used in This Book 115\u003c\/p\u003e \u003cp\u003e3.3 Asymptotic Analysis 123\u003c\/p\u003e \u003cp\u003e3.4 Simple Justification Techniques 137\u003c\/p\u003e \u003cp\u003e3.5 Exercises 141\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Recursion 148\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Illustrative Examples 150\u003c\/p\u003e \u003cp\u003e4.2 Analyzing Recursive Algorithms 161\u003c\/p\u003e \u003cp\u003e4.3 Recursion Run Amok 165\u003c\/p\u003e \u003cp\u003e4.4 Further Examples of Recursion 169\u003c\/p\u003e \u003cp\u003e4.5 Designing Recursive Algorithms 177\u003c\/p\u003e \u003cp\u003e4.6 Eliminating Tail Recursion 178\u003c\/p\u003e \u003cp\u003e4.7 Exercises 180\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Array-Based Sequences 183\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Python’s Sequence Types 184\u003c\/p\u003e \u003cp\u003e5.2 Low-Level Arrays 185\u003c\/p\u003e \u003cp\u003e5.3 Dynamic Arrays and Amortization 192\u003c\/p\u003e \u003cp\u003e5.4 Efficiency of Python's Sequence Types 202\u003c\/p\u003e \u003cp\u003e5.5 Using Array-Based Sequences 210\u003c\/p\u003e \u003cp\u003e5.6 Multidimensional Data Sets 219\u003c\/p\u003e \u003cp\u003e5.7 Exercises 224\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Stacks, Queues, and Deques 228\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Stacks 229\u003c\/p\u003e \u003cp\u003e6.2 Queues 239\u003c\/p\u003e \u003cp\u003e6.3 Double-Ended Queues 247\u003c\/p\u003e \u003cp\u003e6.4 Exercises 250\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Linked Lists 255\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Singly Linked Lists 256\u003c\/p\u003e \u003cp\u003e7.2 Circularly Linked Lists 266\u003c\/p\u003e \u003cp\u003e7.3 Doubly Linked Lists 270\u003c\/p\u003e \u003cp\u003e7.4 The Positional List ADT 277\u003c\/p\u003e \u003cp\u003e7.5 Sorting a Positional List 285\u003c\/p\u003e \u003cp\u003e7.6 Case Study: Maintaining Access Frequencies 286\u003c\/p\u003e \u003cp\u003e7.7 Link-Based vs Array-Based Sequences 292\u003c\/p\u003e \u003cp\u003e7.8 Exercises 294\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Trees 299\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 General Trees 300\u003c\/p\u003e \u003cp\u003e8.2 Binary Trees 311\u003c\/p\u003e \u003cp\u003e8.3 Implementing Trees 317\u003c\/p\u003e \u003cp\u003e8.4 Tree Traversal Algorithms 328\u003c\/p\u003e \u003cp\u003e8.5 Case Study: An Expression Tree 348\u003c\/p\u003e \u003cp\u003e8.6 Exercises 352\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Priority Queues 362\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 The Priority Queue Abstract Data Type 363\u003c\/p\u003e \u003cp\u003e9.2 Implementing a Priority Queue 365\u003c\/p\u003e \u003cp\u003e9.3 Heaps 370\u003c\/p\u003e \u003cp\u003e9.4 Sorting with a Priority Queue 385\u003c\/p\u003e \u003cp\u003e9.5 Adaptable Priority Queues 390\u003c\/p\u003e \u003cp\u003e9.6 Exercises 395\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Maps, Hash Tables, and Skip Lists 401\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Maps and Dictionaries 402\u003c\/p\u003e \u003cp\u003e10.2 Hash Tables 410\u003c\/p\u003e \u003cp\u003e10.3 Sorted Maps 427\u003c\/p\u003e \u003cp\u003e10.4 Skip Lists 437\u003c\/p\u003e \u003cp\u003e10.5 Sets, Multisets, and Multimaps 446\u003c\/p\u003e \u003cp\u003e10.6 Exercises 452\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Search Trees 459\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Binary Search Trees 460\u003c\/p\u003e \u003cp\u003e11.2 Balanced Search Trees 475\u003c\/p\u003e \u003cp\u003e11.2.1 Python Framework for Balancing Search Trees 478\u003c\/p\u003e \u003cp\u003e11.3 AVL Trees 481\u003c\/p\u003e \u003cp\u003e11.4 Splay Trees 490\u003c\/p\u003e \u003cp\u003e11.5 (2,4) Trees 502\u003c\/p\u003e \u003cp\u003e11.6 Red-Black Trees 512\u003c\/p\u003e \u003cp\u003e11.7 Exercises 528\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Sorting and Selection 536\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Why Study Sorting Algorithms? 537\u003c\/p\u003e \u003cp\u003e12.2 Merge-Sort 538\u003c\/p\u003e \u003cp\u003e12.3 Quick-Sort 550\u003c\/p\u003e \u003cp\u003e12.4 Studying Sorting through an Algorithmic Lens 562\u003c\/p\u003e \u003cp\u003e12.5 Comparing Sorting Algorithms567\u003c\/p\u003e \u003cp\u003e12.6 Python's Built-In Sorting Functions 569\u003c\/p\u003e \u003cp\u003e12.7 Selection 571\u003c\/p\u003e \u003cp\u003e12.8 Exercises 574\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Text Processing 581\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Abundance of Digitized Text 582\u003c\/p\u003e \u003cp\u003e13.2 Pattern-Matching Algorithms 584\u003c\/p\u003e \u003cp\u003e13.3 Dynamic Programming 594\u003c\/p\u003e \u003cp\u003e13.4 Text Compression and the Greedy Method 601\u003c\/p\u003e \u003cp\u003e13.5 Tries 604\u003c\/p\u003e \u003cp\u003e13.6 Exercises 613\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Graph Algorithms 619\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Graphs 620\u003c\/p\u003e \u003cp\u003e14.2 Data Structures for Graphs627\u003c\/p\u003e \u003cp\u003e14.3 Graph Traversals 638\u003c\/p\u003e \u003cp\u003e14.4 Transitive Closure 651\u003c\/p\u003e \u003cp\u003e14.5 Directed Acyclic Graphs 655\u003c\/p\u003e \u003cp\u003e14.6 Shortest Paths 659\u003c\/p\u003e \u003cp\u003e14.7 Minimum Spanning Trees 670\u003c\/p\u003e \u003cp\u003e14.8 Exercises 686\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Memory Management and B-Trees 697\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Memory Management 698\u003c\/p\u003e \u003cp\u003e15.2 Memory Hierarchies and Caching 705\u003c\/p\u003e \u003cp\u003e15.3 External Searching and B-Trees 711\u003c\/p\u003e \u003cp\u003e15.4 External-Memory Sorting 715\u003c\/p\u003e \u003cp\u003e15.5 Exercises 717\u003c\/p\u003e \u003cp\u003eA Character Strings in Python 721\u003c\/p\u003e \u003cp\u003eB Useful Mathematical Facts 725\u003c\/p\u003e \u003cp\u003eBibliography 732\u003c\/p\u003e \u003cp\u003eIndex 737\u003c\/p\u003e  \u003cp\u003e\u003cstrong\u003eMichael Goodrich, PhD\u003c\/strong\u003e in Computer Science from Purdue University, 1987; Chancellor's Professor of Computer Science at University of California, Irvine; co-author (with Tamassia) of three other Wiley textbooks and a new computer security text, Addison Wesley, 2011. \u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eRoberto Tamassia, PhD\u003c\/strong\u003e in Electrical and Computer Engineering from the University of Illinois at Urbana-Champaign, 1988; Plastech Professor of Computer Science and Chair of the CS Dept at Brown University; co-author with Goodrich, see texts above. \u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eMichael Goldwasser, PhD\u003c\/strong\u003e in Computer Science from Stanford University, 1997; Associate Professor and Director of CS at St. Louis University; author of \u003cem\u003eObject-Oriented Programming in Python\u003c\/em\u003e, Pearson, 2008.   \u003c\/p\u003e\u003cp\u003eThis all-new \u003ci\u003eData Structures and Algorithms in Python\u003c\/i\u003e 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.\u003c\/p\u003e \u003cp\u003eThis is a “sister” book to Goodrich \u0026amp; Tamassia’s \u003ci\u003eData Structures and Algorithms in Java\u003c\/i\u003e and Goodrich, Tamassia and Mount’s \u003ci\u003eData Structures and Algorithms in C++\u003c\/i\u003e. 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.\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features of this Book\u003c\/b\u003e\u003c\/p\u003e \u003cul\u003e \u003cli\u003eA primer that reviews the basics of programming in Python (Chapter 1), followed by a separate introduction to \u003ci\u003eobject-oriented\u003c\/i\u003e programming in Python (Chapter 2).\u003c\/li\u003e \u003cli\u003eExtensive coverage of recursion (Chapter 4).\u003c\/li\u003e \u003cli\u003eA 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.\u003c\/li\u003e \u003cli\u003eSource 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.\u003c\/li\u003e \u003cli\u003e500 illustrations that present data structures and algorithms in a clear, visual manner.\u003c\/li\u003e \u003cli\u003eMore than 750 exercises, divided into categories of reinforcement, creativity, and projects.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003cb\u003eAbout the cover:\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe 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.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989026291941,"sku":"NP9781118290279","price":143.5,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781118290279.jpg?v=1761782492","url":"https:\/\/k12savings.com\/es\/products\/data-structures-and-algorithms-in-python-isbn-9781118290279","provider":"K12savings","version":"1.0","type":"link"}