# Data Structures and Algorithms in Python

Explore data structures such as linked lists, stacks, queues, hash tables, and graphs; and search and sort algorithms!

Start Course for Free4 Hours16 Videos49 Exercises2,524 Learners

## Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.## Loved by learners at thousands of companies

## Course Description

## Recognize Popular Data Structures and Algorithms

Most computer programs are based on a few data structures and algorithms. Learn about what’s behind the hood of most of your computer interactions in this four-hour course! You’ll familiarize yourself with some of the most common data structures: linked lists, stacks, queues, and trees. You’ll also implement popular algorithms, such as Depth First Search, Breadth First Search, Bubble sort, Merge sort, and Quicksort.## Learn to Spot Data Structures and Algorithms in Everyday Life

You'll practice applying data structures and algorithms to decks of cards, music playlists, international dishes, and stacks of books. You’ll walk away with the ability to recognize common data structures and algorithms, and implement them in day-to-day applications!## Analyze the Efficiency of Algorithms

Along the way, you’ll stop to analyze popular algorithms in terms of their efficiency. You’ll come to grips with “Big O Notation”, the industry standard for describing the complexity of an algorithm.## Sharpen Your Python Programming Knowledge

Being well-versed with data structures and algorithms means being able to take everyday problems and solve them using efficient code. You’ll be practising this in Python, you’ll take these fundamental and transferable skills with you to any programming language.- 1
### Work with Linked Lists and Stacks and Understand Big O notation

**Free**You’ll begin by learning what algorithms and data structures are. You will discover two data structures: linked lists and stacks. You will then learn how to calculate the complexity of an algorithm by using Big O Notation.

Welcome!50 xpImplementing a linked list100 xpInserting a node at the beginning of a linked list100 xpRemoving the first node from a linked list100 xpUnderstanding Big O Notation50 xpBig O Notation: true or false?100 xpPracticing with Big O Notation100 xpWorking with stacks50 xpImplementing a Stack with the push method100 xpImplementing the pop method for a stack100 xpUsing Python's LifoQueue100 xp - 2
### Queues, Hash Tables, Trees, Graphs, and Recursion

This second chapter will teach you the basics of queues, hash tables, trees, and graphs data structures. You will also discover what recursion is.

Working with queues50 xpImplementing a queue for printer tasks100 xpUsing Python's SimpleQueue100 xpHash tables50 xpCorrecting bugs in a dictionary100 xpIterating over a nested dictionary100 xpTrees and graphs50 xpCorrecting bugs in a tree implementation100 xpBuilding a weighted graph100 xpUnderstanding Recursion50 xpFibonacci sequence100 xpTowers of Hanoi100 xp - 3
### Searching algorithms

This chapter will focus on searching algorithms, like linear search, binary search, depth first search, and breadth first search. You will also study binary search trees and how to search within them.

Linear Search and Binary Search50 xpImplementing binary search100 xpBinary search using recursion100 xpBinary Search Tree (BST)50 xpInserting a node into a binary search tree100 xpFinding the minimum node of a BST100 xpDepth First Search (DFS)50 xpPrinting book titles in alphabetical order100 xpUsing pre-order traversal with Polish notation100 xpImplementing DFS for graphs100 xpBreadth First Search (BFS)50 xpUsing breadth first search in binary trees50 xpFinding a graph vertex using BFS100 xp - 4
### Sorting algorithms

This chapter will teach you some sorting algorithms, like bubble sort, selection sort, insertion sort, merge sort, and quicksort.

Bubble Sort50 xpSorting numbers using bubble sort100 xpCorrecting a bug in the bubble sort algorithm100 xpSelection Sort and Insertion Sort50 xpCoding selection sort100 xpSorting cards using insertion sort100 xpMerge sort50 xpMerge sort: true or false?100 xpCorrecting a bug in the merge sort algorithm100 xpQuicksort50 xpSorting numbers using quicksort100 xpImplementing the quicksort algorithm100 xpCongratulations!50 xp

Collaborators

Prerequisites

Writing Functions in PythonMiriam Antona

See MoreSoftware Engineer

Miriam is a freelance Software Engineer with 15+ years of experience. She is focused on analyzing, designing, and developing software applications. She also collaborates with the UOC University supervising Bachelor theses. Miriam loves programming and experimenting with different technologies. She is passionate about databases and enjoys playing with data. She holds a Master of Science Degree in Computer Engineering.

## What do other learners have to say?

## Join over 11 million learners and start Data Structures and Algorithms in Python today!

## Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.