Advanced Data Structures
A complete guide to learning everything there is to know about data structures
Created by William Fiset, Last Updated 08-Nov-2019, Language:English
Description
Data structures are amongst the most fundamental ingredients in the recipe for creating efficient algorithms and good software design. Knowledge of how to create and design good data structures is an essential skill required in becoming an exemplary programmer. This course will teach you how to master the fundamental ideas surrounding data structures.
Learn and master the most common data structures in this comprehensive course:
- Static and dynamic arrays
- Singly and doubly linked lists
- Stacks
- Queues
- Heaps/Priority Queues
- Binary Trees/Binary Search Trees
- Union find/Disjoint Set
- Hash tables
- Fenwick trees
- AVL trees
Course contents
This course provides you with high quality animated videos explaining a multitude of data structures and how they are represented 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 of that particular data structure. I will also be posting various coding exercises and multiple choice questions to ensure that you get some hands on experience.
Who this course is for:
- Individuals hungry for new knowledge
- Students who want a fundamental understanding of data structures
Requirements
- Basic computer science knowledge
What Will I Get ?
- Mature understanding of data structures
- Algorithms associated with data structures
- Dynamic arrays
- Singly and doubly linked list
- Queues & Stacks
- Binary Trees and Binary search trees
- Heaps & Priority queues
- Union find/Disjoint set
- Hash table/Associative array
- Fenwick tree/Binary indexed tree
Course Content
-
Introduction
2 Lectures
00:17:26
-
Abstract data types Introduction
Preview00:04:47 -
Understanding time/space complexity
Preview00:12:39
-
-
Static and dynamic arrays
2 Lectures
00:18:36
-
Static and dynamic arrays
Preview00:11:51 -
Dynamic array source code
00:06:45
-
-
Linked lists
2 Lectures
00:24:17
-
Linked list introduction
00:14:42 -
Doubly linked list source code
00:09:35
-
-
Stacks
3 Lectures
00:18:40
-
Understanding stacks
00:11:38 -
Stack implementation details
00:03:31 -
Stack source code
00:03:31
-
-
Queues
3 Lectures
00:16:26
-
Understanding queues
00:06:25 -
Breadth first search and queue implementation
00:05:49 -
Queue source code
00:04:12
-
-
Priority queues
5 Lectures
00:59:24
-
What is a priority queue?
00:13:17 -
Min heaps and Max heaps
00:06:14 -
Priority queue inserting elements
00:09:58 -
Priority queue removing elements
00:14:06 -
Priority queue source code
00:15:49
-
-
Union find/Disjoint set
5 Lectures
00:37:06
-
Union find introduction
00:05:45 -
Kruskal's Algorithm
00:06:14 -
Union and find operations
00:10:52 -
Path compression
00:06:35 -
Union find source code
00:07:40
-
-
Binary search trees
5 Lectures
00:57:47
-
Introduction to binary trees
00:12:30 -
Binary search tree insertions
00:05:52 -
Binary search tree removals
00:14:09 -
Binary tree traversals
00:11:57 -
Binary search tree source code
00:13:19
-
-
Hash tables
9 Lectures
01:48:50
-
Hash table hash functions
00:17:20 -
Hash table separate chaining
00:08:13 -
Hash table separate chaining source code
00:11:46 -
Hash table open addressing
00:11:08 -
Hash table linear probing
00:13:55 -
Hash table quadratic probing
00:09:26 -
Hash table double hashing
00:14:49 -
Hash table removing key-value pairs
00:07:32 -
Hash table open addressing source code
00:14:41
-
-
Fenwick tree/Binary indexed tree
4 Lectures
00:30:28
-
Fenwick tree range queries
00:13:44 -
Fenwick tree point updates
00:04:35 -
Fenwick tree construction
00:06:28 -
Fenwick tree source code
00:05:41
-
-
AVL Tree
4 Lectures
00:44:08
-
Tree rotations
00:08:50 -
AVL tree insertions
00:09:35 -
AVL tree removals
00:08:55 -
AVL tree source code
00:16:48
-
-
Indexed Priority Queue
2 Lectures
00:33:54
-
Introduction to indexed priority queues
00:25:21 -
Indexed priority queue source code
00:08:33
-
