Data Structures and Algorithms in Python (An Indian Adaptation)

Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser

ISBN: 9789354247866

808 pages

INR 809

Description

Data Structures and Algorithms in Python offers a comprehensive, definitive introduction to data structures and algorithms, including their design, analysis, and implementation in Python. Utilizing a consistent object-oriented viewpoint throughout the book, it provides detailed algorithmic strategies for producing efficient realizations of common data structures such as arrays, stacks, queues, linked lists, trees, maps, hash tables, search trees, and graphs. The book also provides an in-depth analysis of algorithmic performance that helps readers to recognize common trade-offs between competing strategies. The book incorporates a host of pedagogical features, including illustrations, code fragments, and end-of-chapter exercises.

 

Chapter 1 Introduction to Python  

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  

1.10 Scopes and Namespaces  

1.11 Modules and the Import Statement  

 

Chapter 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  

 

Chapter 3 Introduction to Data Structures and Algorithms  

3.1 Data Structures  

3.2 Experimental Studies  

3.3 The Seven Functions Used in this Book  

3.4 Analysis of Algorithms  

3.5 Simple Justification Techniques  

 

Chapter 4 Recursion  

4.1 Examples Illustrating Recursion  

4.2 Analyzing Recursive Algorithms  

4.3 Further Examples of Recursion  

4.4 Designing Recursive Algorithms  

4.5 Eliminating Tail Recursion  

 

Chapter 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  

 

Chapter 6 Stacks  

6.1 Stacks  

6.2 The Stack Abstract Data Type  

6.3 Simple Array-Based Stack Implementation  

 

Chapter 7 Queues  

7.1 Queues  

7.2 The Queue Abstract Data Type  

7.3 Array-Based Queue Implementation  

7.4 Double-Ended Queues  

7.5 Circular Queues  

 

Chapter 8 Linked Lists  

8.1 Singly Linked Lists  

8.2 Circularly Linked Lists  

8.3 Doubly Linked Lists  

8.4 The Positional List ADT  

8.5 Sorting a Positional List  

8.6 Link-Based vs. Array-Based Sequences  

 

Chapter 9 Trees  

9.1 General Trees  

9.2 Binary Trees  

9.3 Implementing Trees  

9.4 Tree Traversal Algorithms  

9.5 Case Study: An Expression Tree  

 

Chapter 10 Priority Queues  

10.1 The Priority Queue Abstract Data Type  

10.2 Implementing a Priority Queue  

10.3 Heaps  

10.4 Adaptable Priority Queues  

 

Chapter 11 Maps, Hash Tables, and Sets  

11.1 Maps and Dictionaries  

11.2 Hash Tables  

11.3 Sorted Maps  

11.4 Sets, Multisets, and Multimaps  

 

Chapter 12 Search Trees  

12.1 Binary Search Trees  

12.2 Balanced Search Trees  

12.3 AVL Trees  

12.4 Splay Trees  

12.5 (2, 4) Trees  

12.6 Red-Black Trees  

 

Chapter 13 Sorting Algorithms  

13.1 Why Study Sorting Algorithms?  

13.2 Merge-Sort  

13.3 Quick-Sort  

13.4 Studying Sorting through an Algorithmic Lens  

13.5 Sorting with a Priority Queue  

13.6 Comparing Sorting Algorithms  

13.7 Python’s Built-In Sorting Functions  

 

Chapter 14 Graph Algorithms  

14.1 Graphs  

14.2 Data Structures for Graphs  

14.3 Graph Traversals  

14.4 Transitive Closure  

14.5 Directed Acyclic Graphs  

14.6 Shortest Paths  

14.7 Minimum Spanning Trees  

 

Chapter 15 Text Processing  

15.1 Abundance of Digitized Text  

15.2 Pattern-Matching Algorithms  

15.3 Dynamic Programming  

15.4 Text Compression and the Greedy Method  

15.5 Tries  

 

Chapter 16 Memory Management and B-Trees  

16.1 Memory Management  

16.2 Memory Hierarchies and Caching  

16.3 External Searching and B-Trees  

16.4 External-Memory Sorting  

 

Illustrative Examples and Programs  

Exercises  

Multiple Choice Questions  

Chapter Notes  

Answers to Multiple Choice Questions  

 

Appendix A Character Strings in Python  

Appendix B Useful Mathematical Facts  

Appendix C Additional Searching and Sorting Algorithms  

Bibliography  

Index  

 

 

×
  • Name:
  • Designation:
  • Name of Institute:
  • Email:
  • * Request from personal id will not be entertained
  • Moblie:
  • ISBN / Title:
  • ISBN:    * Please specify ISBN / Title Name clearly