๐”– Scriptorium
โœฆ   LIBER   โœฆ

๐Ÿ“

Data Structures with Python: Get familiar with the common Data Structures and Algorithms in Python

โœ Scribed by Dr. Harsh Bhasin


Publisher
BPB Publications
Year
2023
Tongue
English
Leaves
404
Category
Library

โฌ‡  Acquire This Volume

No coin nor oath required. For personal study only.

โœฆ Synopsis


Develop a strong foundation in Data Structures and Algorithms and become a skilled programmer

Description
Data structures are a way of organizing and storing data in a computer so that it can be accessed and manipulated efficiently. If you want to become an accomplished programmer and master this subject, then this book is for you.

The book starts by introducing you to the fascinating world of data structures and algorithms. This book will help you learn about different algorithmic techniques such as Dynamic programming, Greedy algorithms, and Backtracking, and their applications in solving various computational problems. The book will then teach you how to analyze the complexity of Recursive algorithms. Moving on, the book will help you get familiar with the concept of Linked lists, which is an important foundation for understanding other data structures, such as Stacks and Queues, which are covered in detail later in this book. The book will also teach you about advanced data structures such as Trees and Graphs, their different types, and their applications. Towards the end, the book will teach you how to use various Sorting, Searching Selection and String algorithms.

By the end of the book, you will get a comprehensive and in-depth understanding of various data structures and algorithms and their applications in solving real-world computational problems efficiently.

What you will learn
โ— Get familiar with the fundamentals of data structures such as arrays, linked lists, stacks, and queues.
โ— Understand the basics of algorithm analysis and complexity theory.
โ— Explore different approaches to the algorithm design, such as divide-and-conquer, dynamic programming, and greedy algorithms.

Who this book is for
The book is aimed at Computer Science students, Software Engineers, and anyone interested in learning about data structures and algorithms

โœฆ Table of Contents


  1. Introduction to Data Structures
    Structure
    Objectives
    Introduction
    Data types
    Types of data structures
    Game of clones
    The game of clones revisited
    Conclusion
    Multiple choice questions
    Theory-based questions
    Application-based questions
  2. Design Methodologies
    Structure
    Objectives
    Greedy approach
    Divide and conquer
    Backtracking and dynamic programming
    Longest common sub-sequence
    Conclusion
    Multiple choice questions
    Programming/application
    Further references
  3. Recursion
    Structure
    Objectives
    Exponentiation
    Tower of Hanoi
    Rabbit problem
    Generating binary numbers
    Lists
    Numbers
    Conclusion
    Multiple choice questions
    Programming
    Further references
  4. Arrays
    Structure
    Objectives
    Introduction
    Memory map
    Address in column-major
    Inserting and deleting
    Operations on arrays
    Linear search
    Problems
    Conclusion
    Multiple choice questions
    Programming
  5. Linked List
    Structure
    Objectives
    One-way linked list
    Traversing
    Insertion and deletion
    Two-way
    Traversing
    Insertion and deletion
    Cyclic list
    Stacks and Queues
    Reversing a linked list
    Concatenate lists
    Check cycle
    Conclusion
    Multiple choice questions
    Theory
    Problems
  6. Stacks
    Structure
    Objectives
    Introduction
    Implementing two stacks using a single list
    Types and uses
    Reversing a string
    Expressions
    Evaluation of postfix
    Infix to postfix
    Infix to prefix
    Problems
    Conclusion
    Multiple Choice Questions
    Problems
  7. Queues
    Structure
    Objectives
    Introduction
    Algorithm and implementation
    Circular queue
    Doubly-ended queue: DEQueue
    Generating binary numbers using a queue
    Stack using two queues
    Stack from a single queue
    Scheduling
    Conclusion
    Multiple Choice Questions
    Problems
  8. Trees-I
    Introduction
    Structure
    Objectives
    Definition and terminology
    Representation of a Binary Tree
    Traversal
    Post-order traversal
    Pre-order traversal
    Binary search tree
    Insertion in a BST
    Deletion
    Leftmost node
    Rightmost node
    Conclusion
    Multiple choice questions
    Numerical/problems
  9. Trees-II
    Structure
    Objectives
    AVL trees
    Insertion
    Insertion in an AVL tree
    Deletion from an AVL Tree
    B Trees
    Conclusion
    Multiple choice questions
    Theory
    Numericals
  10. Priority Queues
    Structure
    Objectives
    Introduction to priority queues
    Structure of heap
    Operations
    Inserting an element in a heap
    Deletion
    Heap sort
    Problems
    Conclusion
    Multiple choice questions
    Programming
    Further references
  11. Graphs
    Introduction
    Structure
    Objectives
    Representation
    Traversals
    Depth First Search
    Breadth First Search
    Topological sort
    Spanning tree
    Kruskalโ€™s algorithm
    Conclusion
    Multiple choice questions
    Numerical/application based
    Programming
  12. Sorting
    Structure
    Objectives
    Bubble sort
    Comb sort
    Selection sort
    Insertion sort
    Radix sort
    Counting sort
    Merge and merge sort
    Partition and quick sort
    Conclusion
    Illustrations
    Multiple choice questions
    Theory
  13. Median and Order Statistics
    Introduction
    Structure
    Objectives
    Introduction to median and order statistics
    Median of medians
    Median using heaps
    Median using insertion sort
    Median using partition
    Conclusion
    Solved problems
    Multiple choice questions
    Applications/implementation
    Bibliography
  14. Hashing
    Structure
    Objectives
    Hash tables
    Storing information
    Sorted sequential array
    Linked list representation
    AVL trees
    Hashing
    Hash function
    Collision resolution
    Selecting hash function
    Collisions
    Collision resolution
    Linear probing
    Quadratic probing
    Separate chaining
    Solved problems
    Conclusion
    Multiple choice questions
    Theory
    Problems
    Programming
  15. String Matching
    Structure
    Objectives
    Introduction to string-matching
    Brute force method
    Rabin Karp
    Knuthโ€“Morrisโ€“Pratt algorithm
    KMP method
    Conclusion
    Multiple choice questions
    Theory/applications
    Find errors/special cases
    References
    Appendix 1: All Pairs Shortest Path
    Introduction
    All Pairs Shortest Path
    Appendix 2: Tree Traversals
    Introduction
    In-Order Traversal
    Pre-order traversal
    Post-order traversal
    Appendix 3: Dijkstraโ€™s Shortest Path Algorithm
    Introduction
    Dijkstraโ€™s shortest path algorithm
    Appendix 4: Supplementary Questions
    Arrays: Level 0
    Arrays: Level 1
    Stacks
    Linked List
    Trees
    Graphs
    Application based
    Solved problems
    Multiple choice questions
    Applications/implementation
    Bibliography
  16. Hashing
    Structure
    Objectives
    Hash tables
    Storing information
    Sorted sequential array
    Linked list representation
    AVL trees
    Hashing
    Hash function
    Collision resolution
    Selecting hash function
    Collisions
    Collision resolution
    Linear probing
    Quadratic probing
    Separate chaining
    Solved problems
    Conclusion
    Multiple choice questions
    Theory
    Problems
    Programming
  17. String Matching
    Structure
    Objectives
    Introduction to string-matching
    Brute force method
    Rabin Karp
    Knuthโ€“Morrisโ€“Pratt algorithm
    KMP method
    Conclusion
    Multiple choice questions
    Theory/applications
    Find errors/special cases
    References
    Appendix 1: All Pairs Shortest Path
    Introduction
    All Pairs Shortest Path
    Appendix 2: Tree Traversals
    Introduction
    In-Order Traversal
    Pre-order traversal
    Post-order traversal
    Appendix 3: Dijkstraโ€™s Shortest Path Algorithm
    Introduction
    Dijkstraโ€™s shortest path algorithm
    Appendix 4: Supplementary Questions
    Arrays: Level 0
    Arrays: Level 1
    Stacks
    Linked List
    Trees
    Graphs
    Application based

๐Ÿ“œ SIMILAR VOLUMES


Data Structures and Algorithms with Pyth
โœ Kent D. Lee; Steve Hubbard ๐Ÿ“‚ Library ๐Ÿ“… 2015 ๐Ÿ› Springer ๐ŸŒ English

This textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently. Project-oriented and classroom-tested, the book presents a number of important algorithms supported by examples that bring meaning to the problems faced by computer progra

Data Structures and Algorithms with Pyth
โœ Kent D. Lee; Steve Hubbard ๐Ÿ“‚ Library ๐Ÿ“… 2015 ๐Ÿ› Springer ๐ŸŒ English

This textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently. Project-oriented and classroom-tested, the book presents a number of important algorithms supported by examples that bring meaning to the problems faced by computer progra

Data Structures and Algorithms with Pyth
โœ Kent D. Lee;Steve Hubbard ๐Ÿ“‚ Library ๐Ÿ“… 2015 ๐Ÿ› Springer International Publishing AG ๐ŸŒ English

This clearly structured and easy to read textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently. Project-oriented and classroom-tested, the book presents a number of important algorithms supported by motivating examples that bring m

Data Structures and Algorithms with Pyth
โœ Lee, Kent D;Hubbard, Steve ๐Ÿ“‚ Library ๐Ÿ“… 2015 ๐Ÿ› Springer International Publishing AG ๐ŸŒ English

This clearly structured and easy to read textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently.<br /><br />Project-oriented and classroom-tested, the book presents a number of important algorithms supported by motivating examples t

Data Structures and Algorithms with Pyth
โœ Lee, Kent D;Hubbard, Steve ๐Ÿ“‚ Library ๐Ÿ“… 2015 ๐Ÿ› Springer International Publishing AG ๐ŸŒ English

This clearly structured and easy to read textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently.<br /><br />Project-oriented and classroom-tested, the book presents a number of important algorithms supported by motivating examples t