Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.


Learn Data Structures and Algorithms with Python

via Codecademy


Learn what data structures and algorithms are, why they are useful, and how you can use them effectively in Python.

### Why Learn Data Structures and Algorithms

At the backbone of every program or piece of software are two entities: data and algorithms. Algorithms transform data into something a program can effectively use. Therefore, it is important to understand how to structure data so algorithms can maintain, utilize, and iterate through data quickly.

### Take Away Skills

By completing this course, you will be able to:
* Recognize the differences between a data structure and an algorithm
* Create and manipulate data structures such as linked lists, queues, hash maps, graphs, and more in Python
* Understand the characteristics of various advanced algorithms as well as be able to implement them in Python
* Analyze the space and time complexity of different data structures and algorithms


  • Introduction to Data Structures and Algorithms: Take your first steps into data structures and algorithms in Python!
    • Why Data Structures and Algorithms

  • Nodes: Learn about nodes, the building-block data structure.
    • Nodes: Conceptual
    • Nodes: Python
    • Nodes

  • Linked Lists: Learn about linked lists and how to build them in Python.
    • Linked Lists: Conceptual
    • Linked Lists: Python
    • Linked Lists Quiz
    • Swapping Elements in a Linked List
    • Two-Pointer Linked List Techniques

  • Doubly Linked Lists: Learn about doubly linked lists and how to implement them in Python.
    • Doubly Linked Lists: Conceptual
    • Doubly Linked Lists: Python
    • Doubly Linked List Quiz

  • Queues: Learn about queues and how to implement them in Python.
    • Queues: Conceptual
    • Queues: Python
    • Queues Quiz

  • Stacks: Learn about stacks in Python.
    • Stacks: Conceptual
    • Stacks: Python
    • Stacks Quiz
    • Towers of Hanoi

  • Hash Maps: Learn about hash maps and how to implement them in Python.
    • Hash Maps: Conceptual
    • Hash Maps: Conceptual
    • Hash Maps: Python
    • Hash Maps: Python
    • Blossom

  • Recursion: Learn about recursion in Python.
    • Recursion: Conceptual
    • Recursion: Conceptual
    • Recursion: Python
    • Recursion: Python
    • Recursion vs. Iteration - Coding Throwdown
    • Code Challenge: Recursion

  • Asymptotic Notation: Learn about asymptotic notation and how to use it to improve your code's efficiency.
    • Why Asymptotic Notation?
    • Asymptotic Notation: Conceptual
    • Asymptotic Notation: Conceptual
    • Space Complexity
    • Asymptotic Notation: Python
    • Asymptotic Notation: Python

  • Pattern Searching: Learn about the naive pattern search algorithm.
    • Naive Pattern Search: Conceptual
    • Naive Pattern Search: Python
    • Naive Pattern Search: Quiz
    • Code Challenge: Naive Pattern Search

  • Sorting Algorithms: Learn about bubble sort, merge sort, and quicksort and how to implement them in Python.
    • Bubble Sort: Conceptual
    • Bubble Sort: Python
    • Bubble Sort: Python
    • Merge Sort: Conceptual
    • Merge Sort: Python
    • Merge Sort: Python
    • Quicksort: Conceptual
    • Quicksort: Python
    • Quicksort: Python
    • Sort Runtimes
    • A Sorted Tale

  • Brute Force Algorithms: Learn about brute force algorithms.
    • Brute Force Algorithms
    • Linear Search: Conceptual
    • Linear Search: Python
    • Brute Force

  • Trees: Learn about trees and how to build them in Python.
    • Trees: Conceptual
    • Trees: Python
    • Trees Quiz
    • Choose Your Own Adventure: Wilderness Escape

  • Tree Traversal: Breadth-First Search and Depth-First Search: Learn about two different methods of tree traversal.
    • Tree Traversal: Breadth-First Search vs Depth-First Search
    • Breadth-First Search: Conceptual
    • Breadth-First Search: Python
    • Breadth-First Search
    • Depth-First Search: Conceptual
    • Depth-First Search: Python
    • Depth-First Search

  • Divide and Conquer: Learn about divide and conquer algorithms, with a focus on binary search and binary search trees.
    • Divide and Conquer Algorithms
    • Binary Search: Conceptual
    • Binary Search: Python
    • Binary Search Trees: Python
    • Binary Search Trees: Python

  • Heaps and Heapsort: Learn about heaps and heapsort, and implement them in Python.
    • Max-Heaps: Conceptual
    • Max-Heaps: Python
    • Max-Heaps Quiz
    • Heapsort: Conceptual
    • Heapsort: Python
    • Heapsort Quiz

  • Graphs and Graph Search: Learn about and implement graphs and graph search in Python.
    • Graphs: Conceptual
    • Graphs: Conceptual
    • Graphs: Python
    • Graphs: Python
    • Graph Search: Conceptual
    • Graph Search: Conceptual
    • Graph Search: Python
    • Graph Search: Python
    • SkyRoute: A Graph Search Program

  • Greedy Algorithms: Learn about greedy algorithms and implement Dijkstra's algorithm in Python.
    • Greedy Algorithms
    • Dijkstra's Algorithm: Conceptual
    • Dijkstra's Algorithm: Conceptual
    • Dijkstra's Algorithm: Python
    • Dijkstra's Algorithm: Python
    • Traveling Salesperson

  • Pathfinding Algorithms: Learn about pathfinding algorithms and implement the A* algorithm in Python.
    • Introduction to Pathfinding
    • A* Algorithm: Conceptual
    • A* Algorithm: Conceptual
    • A* Algorithm: Python
    • A* Algorithm: Python


Start your review of Learn Data Structures and Algorithms with Python

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.