# Data Structures Easy to Advanced Course – Full Tutorial from a Google Engineer

July 9, 2024 2024-07-09 8:29## Data Structures Easy to Advanced Course – Full Tutorial from a Google Engineer

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: https://github.com/williamfiset/data-structures

🎥 Course created by William Fiset. Check out his YouTube channel: https://www.youtube.com/channel/UCD8yeTczadqdARzQUp29PJw

⭐️ 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: https://www.freecodecamp.org

Read hundreds of articles on programming: https://www.freecodecamp.org/news

source

## Comments (23)

## @freecodecamp

Click the "JOIN" button below the video to support freeCodeCamp.org!

## @mdmoneemmonower2424

⌨ (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

## @forheuristiclifeksh7836

1:50:00

## @forheuristiclifeksh7836

1:21:44

## @forheuristiclifeksh7836

34:00

## @johnsmith-hu6mg

1:53:06

## @johnsmith-hu6mg

50:49

## @trickerygod

hello, i'm a college student and i currently studying c++ so is this all information applicable for c++/c language

## @dreamychords11

just solved a math problem

## @yojithkr17

Does anyone have notes of this complete course?

## @AbhishekGupta-kn3cz

my-opinion : this course is not for someone who needs handson with explanation. TBH – very min handson, person just walks over through codes in few mins and gives reference. Course lists/topics are good, I would take the DSA topics from here and view some-one else video for handson explanation. Hope this helps who-ever reads it.

## @salahammar1521

Why java

## @c.mirashi

the worst explanation for the time and space complexity, i repeat the worst

## @mayosmayo4738

This video is just 6 hours long cuz you need to have in x1.5 for it to sound like normal speed

## @saikumar5160

In Which language is explained this course Java or python.

## @afrozshabbir100

After lot of difficulties in understanding….

I could finally complete the video with my own handwritten notes. It took me nearly 1 week.

## @johndee2990

@evanwest4751 is acts like a massive Baguette

## @kbrodeur

This is a lot of info done very well I might add. 8 hours probably took a very long time to put together in this detail. Thank you for your hard work.

## @Gnarkson

i never finish, my gf is first, always.

## @boadigang

2/17 50:44

## @boadigang

2/15 26:48

## @nyksik001

I haven't gone through the video but from the introduction and comments I've read so far: I just wanna say thank you so much 🙏. This is gold.

## @doihavetodothis

22:09