Playback starts YouTube’s embedded player (privacy-enhanced mode).
Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer
ChannelfreeCodeCamp.orgIn brief
This course from William Fiset, a Google engineer, breaks down core data structures—from arrays and linked lists to advanced trees and hash tables—using clear animations and Java code. You’ll build practical implementations while understanding how each structure works under the hood, making it ideal for programmers looking to strengthen their foundational skills.
Questions & answers
What programming language is used for the code examples?
All source code examples in the course are written in Java.
Does the course cover both basic and advanced data structures?
Yes, it starts with fundamentals like arrays and progresses to advanced structures like AVL trees and Fenwick trees.
Chapters
Description from the creator
Learn and master the most common data structures in this full course from Google engineer William Fiset. This course teaches data structures to beginners using high quality animations to represent the data structures visually.
You will learn how to code various data structures together with simple to follow step-by-step instructions. Every data structure presented will be accompanied by some working source code (in Java) to solidify your understanding.
💻 Code: github.com/williamfiset/data-structures
🎥 Course created by William Fiset. Check out his YouTube channel: youtube.com/channel/UCD8yeTczadqdARzQUp29PJw
❤️ Try interactive Algorithms courses we love, right in your browser: scrimba.com/freeCodeCamp-Algorithms (Made possible by a grant from our friends at Scrimba)
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Abstract data types
⌨️ (0:04:28) Introduction to Big-O
⌨️ (0:17:00) Dynamic and Static Arrays
⌨️ (0:27:40) Dynamic Array Code
⌨️ (0:35:03) Linked Lists Introduction
⌨️ (0:49:16) Doubly Linked List Code
⌨️ (0:58:26) Stack Introduction
⌨️ (1:09:40) Stack Implementation
⌨️ (1:12:49) Stack Code
⌨️ (1:15:58) Queue Introduction
⌨️ (1:22:03) Queue Implementation
⌨️ (1:27:26) Queue Code
⌨️ (1:31:32) Priority Queue Introduction
⌨️ (1:44:16) Priority Queue Min Heaps and Max Heaps
⌨️ (1:49:55) Priority Queue Inserting Elements
⌨️ (1:59:27) Priority Queue Removing Elements
⌨️ (2:13:00) Priority Queue Code
⌨️ (2:28:26) Union Find Introduction
⌨️ (2:33:57) Union Find Kruskal's Algorithm
⌨️ (2:40:04) Union Find - Union and Find Operations
⌨️ (2:50:30) Union Find Path Compression
⌨️ (2:56:37) Union Find Code
⌨️ (3:03:54) Binary Search Tree Introduction
⌨️ (3:15:57) Binary Search Tree Insertion
⌨️ (3:21:20) Binary Search Tree Removal
⌨️ (3:34:47) Binary Search Tree Traversals
⌨️ (3:46:17) Binary Search Tree Code
⌨️ (3:59:26) Hash table hash function
⌨️ (4:16:25) Hash table separate chaining
⌨️ (4:24:10) Hash table separate chaining source code
⌨️ (4:35:44) Hash table open addressing
⌨️ (4:46:36) Hash table linear probing
⌨️ (5:00:21) Hash table quadratic probing
⌨️ (5:09:32) Hash table double hashing
⌨️ (5:23:56) Hash table open addressing removing
⌨️ (5:31:02) Hash table open addressing code
⌨️ (5:45:36) Fenwick Tree range queries
⌨️ (5:58:46) Fenwick Tree point updates
⌨️ (6:03:09) Fenwick Tree construction
⌨️ (6:09:21) Fenwick tree source code
⌨️ (6:14:47) Suffix Array introduction
⌨️ (6:17:54) Longest Common Prefix (LCP) array
⌨️ (6:21:07) Suffix array finding unique substrings
⌨️ (6:25:36) Longest common substring problem suffix array
⌨️ (6:37:04) Longest common substring problem suffix array part 2
⌨️ (6:43:41) Longest Repeated Substring suffix array
⌨️ (6:48:13) Balanced binary search tree rotations
⌨️ (6:56:43) AVL tree insertion
⌨️ (7:05:42) AVL tree removals
⌨️ (7:14:12) AVL tree source code
⌨️ (7:30:49) Indexed Priority Queue | Data Structure
⌨️ (7:55:10) Indexed Priority Queue | Data Structure | Source Code
--
Learn to code for free and get a developer job: freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
You will learn how to code various data structures together with simple to follow step-by-step instructions. Every data structure presented will be accompanied by some working source code (in Java) to solidify your understanding.
💻 Code: github.com/williamfiset/data-structures
🎥 Course created by William Fiset. Check out his YouTube channel: youtube.com/channel/UCD8yeTczadqdARzQUp29PJw
❤️ Try interactive Algorithms courses we love, right in your browser: scrimba.com/freeCodeCamp-Algorithms (Made possible by a grant from our friends at Scrimba)
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Abstract data types
⌨️ (0:04:28) Introduction to Big-O
⌨️ (0:17:00) Dynamic and Static Arrays
⌨️ (0:27:40) Dynamic Array Code
⌨️ (0:35:03) Linked Lists Introduction
⌨️ (0:49:16) Doubly Linked List Code
⌨️ (0:58:26) Stack Introduction
⌨️ (1:09:40) Stack Implementation
⌨️ (1:12:49) Stack Code
⌨️ (1:15:58) Queue Introduction
⌨️ (1:22:03) Queue Implementation
⌨️ (1:27:26) Queue Code
⌨️ (1:31:32) Priority Queue Introduction
⌨️ (1:44:16) Priority Queue Min Heaps and Max Heaps
⌨️ (1:49:55) Priority Queue Inserting Elements
⌨️ (1:59:27) Priority Queue Removing Elements
⌨️ (2:13:00) Priority Queue Code
⌨️ (2:28:26) Union Find Introduction
⌨️ (2:33:57) Union Find Kruskal's Algorithm
⌨️ (2:40:04) Union Find - Union and Find Operations
⌨️ (2:50:30) Union Find Path Compression
⌨️ (2:56:37) Union Find Code
⌨️ (3:03:54) Binary Search Tree Introduction
⌨️ (3:15:57) Binary Search Tree Insertion
⌨️ (3:21:20) Binary Search Tree Removal
⌨️ (3:34:47) Binary Search Tree Traversals
⌨️ (3:46:17) Binary Search Tree Code
⌨️ (3:59:26) Hash table hash function
⌨️ (4:16:25) Hash table separate chaining
⌨️ (4:24:10) Hash table separate chaining source code
⌨️ (4:35:44) Hash table open addressing
⌨️ (4:46:36) Hash table linear probing
⌨️ (5:00:21) Hash table quadratic probing
⌨️ (5:09:32) Hash table double hashing
⌨️ (5:23:56) Hash table open addressing removing
⌨️ (5:31:02) Hash table open addressing code
⌨️ (5:45:36) Fenwick Tree range queries
⌨️ (5:58:46) Fenwick Tree point updates
⌨️ (6:03:09) Fenwick Tree construction
⌨️ (6:09:21) Fenwick tree source code
⌨️ (6:14:47) Suffix Array introduction
⌨️ (6:17:54) Longest Common Prefix (LCP) array
⌨️ (6:21:07) Suffix array finding unique substrings
⌨️ (6:25:36) Longest common substring problem suffix array
⌨️ (6:37:04) Longest common substring problem suffix array part 2
⌨️ (6:43:41) Longest Repeated Substring suffix array
⌨️ (6:48:13) Balanced binary search tree rotations
⌨️ (6:56:43) AVL tree insertion
⌨️ (7:05:42) AVL tree removals
⌨️ (7:14:12) AVL tree source code
⌨️ (7:30:49) Indexed Priority Queue | Data Structure
⌨️ (7:55:10) Indexed Priority Queue | Data Structure | Source Code
--
Learn to code for free and get a developer job: freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
About this tutorial
freeCodeCamp.org published this 8:03:17 video tutorial on October 27, 2019. It has been watched 7,507,399 times on YouTube.
- Channel
- freeCodeCamp.org
- Category
- Education
- Duration
- 8:03:17
- Published
- October 27, 2019
- Views
- 7,507,399
- Likes
- 150,314
Tags
Share
This tutorial in other languages
- FRStructures de données facile à cours avancé - Full Tutorial d'un ingénieur de Google
- ESEstructuras de datos Fácil de Curso Avanzado - Tutorial completo de un ingeniero de Google
- PTEstruturas de Dados Fácil de Curso Avançado - Full Tutorial de um engenheiro do Google
- ITStrutture dati Facile da Corso Avanzato - Full Tutorial da un ingegnere di Google
- DEDatenstrukturen Leicht zu Fortgeschrittenen Kurs - Full Tutorial von einem Google-Ingenieure
- NLDatastructuren Makkelijk te Grondige studie - Full Tutorial van een Google-ingenieur
- RUСтруктуры данных Простота в Курсе - Полный учебник от инженера Google
- PLStruktury danych Łatwy do Advanced Course - Full Tutorial z Inżynierem Google
- JA上級コースへのデータ構造簡単 - Googleのエンジニアからの完全なチュートリアル
- ARهياكل البيانات سهلة دورة متقدمة - كاملة دروس من مهندس جوجل
- HIडेटा सरंचनाएं उन्नत पाठ्यक्रम के लिए आसान - एक Google इंजीनियर से पूर्ण ट्यूटोरियल
- IDStruktur Data Mudah Lanjutan Course - Full Tutorial dari Engineer Google