Slither Into Data Structures And Algorithms

The concise guide to the backbone of the digital world through Python.


Scroll down 👇 to view the table of contents and read a chapter on Graphs!




👋 Introduction

Slither into Data Structures and Algorithms: A concise guide to the backbone of the digital world through Python is an introduction to the world of data structures and algorithms through Python. It is the follow up to the book Slither into Python: An Introduction to Python for Beginners. which is free to read online.

Data structures and the algorithms that bring them to life are the backbone of every successful application you can think of. Through their uses we have a powerful way to unlock insights that are buried in large amounts of data. This book will provide you with a strong foothold in the world of data structures and algorithms.

You'll learn many data structures and the algorithms that underpin them and how we use them in the real world. You'll see how we can use them to build things such as the queue function that is popular in media players such as Spotify that allows you to queue songs or Youtube that allows you to queue videos. You'll see how the algorithms that underpin the most popular compression formats such as JPEG, Zip, GZIP and MPEG-2 work and you'll learn how to compress your own files using the algorithms you've written. You'll learn some of the algorithms the are used in routing data around the internet and linking the networks that make up the internet together. You'll also learn the most common algorithms used in DNA or RNA sequence pattern matching (something that is quite relevant at the time of writing).


🤔 Who is this book for?

To make it through this book you'll need to have an understanding of the basics of Python which includes iteration using loops, flow control using if and else statements and Pythons built-in data types. It would also be useful to have a grasp on object oriented programming in Python but I give a refresher on OOP in Python at the beginning of this book. However, if you are a more experienced programmer from another language, and have experience in a few different languages, you can use this book as a reference.


📚 Read a chapter!

As a taster, here is the chapter on Graphs & Graph Algorithms!


📂 Buy a copy

PDF copies of the book are available from E-Junkie for €12.99. Get yours below!

Discount


📜 Table of Contents

  • Who is this book for?
  • Algorithmic Complexity
    • Big-O Notation
  • Object-Oriented Programming
    • Classes & Objects
    • Defining New Types
    • The self Variable
    • The __init__() method
    • The __str__() method
    • The __len__() method
    • Operator Overloading
    • What are Instance Methods?
    • What are Class Methods?
    • What are Static Methods?
    • Public, Private & Protected Attributes
    • What is Inheritance?
    • Parent & Child Classes
    • Multiple Inheritance
  • Recursion
    • What is Recursion?
    • Recusion Examples
    • Memoization
  • Stacks & Queues
    • Stacks
    • Stack Applications
    • Queues
    • Queue Applications
      • Building a Media Player Queue
    • Priority Queues
  • Linked Lists
    • Singly Linked Lists
      • Adding to the Linked List
      • Deleting from the Linked List
      • Maintaining Efficiency
  • Advanced Linked Lists
    • Doubly Linked Lists
      • The Doubly Linked List Class
      • Inserting into the Doubly Linked List
      • Deleting from the Doubly Linked List
    • Circular Linked Lists
      • Inserting into the Circular Linked List
      • Deleting from the Circular Linked List
      • Circular Linked List Applications
  • Trees
    • Binary Search Trees
      • Inserting into the BST
      • Deletring from the BST
      • The Height of the BST
    • AVL Trees
      • Self-Balancing Binary Search Trees
      • Inserting into the AVL Tree
      • Deleting from the AVL Tree
  • Hash Tables
    • Hash Functions
    • Hash Tables
      • Fixed-size Hash Tables
      • Dynamic Hash Tables
    • Collision Handling Schemes
      • Open Addressing
      • Separate Chaining
    • Hash Table Applications
  • Searching Algorithms
    • Linear Search
    • Binary Search
    • Implementing Binary Search
    • Analaysis of Binary Search
  • Sorting Algorithms
    • Basic Sorting Algorithms
      • Selection Sort
      • Insertion Sort
      • Analysis of Selection and Insertion Sort
    • Quicksort
    • Merge Sort
  • Graphs & Graph Algorithms
    • Graph Structures
      • Undirected and Directed Graphs
      • Weighted Graphs
    • Graphs in Code
      • Adjacency Lists
      • Adjacency Matrix
      • The Graph Class
    • Graph Traversals
      • Breadth-first Search
      • Depth-first Search
    • Shortest Path
      • Dijkstra's Algorithm
  • Data Processing
    • Pattern Matching Algorithms
      • Brute-Force Pattern Matching
      • The Knuth-Morris-Pratt Algorithm
    • Data Compression
      • Huffman Coding