Easy to Advanced Data Structures

Easy to Advanced Data Structures

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 48 lectures (8h 17m) | 1.26 GB

A complete guide to learning everything there is to know about data structures

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
  • Binary Indexed trees
  • Sparse tables

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.

What you’ll learn

  • 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
Table of Contents

1 Abstract data types Introduction
2 Understanding time space complexity

Static and dynamic arrays
3 Static and dynamic arrays
4 Dynamic array source code

Linked lists
5 Linked list introduction
6 Doubly linked list source code

7 Understanding stacks
8 Stack implementation details
9 Stack source code

10 Understanding queues
11 Breadth first search and queue implementation
12 Queue source code

Priority queues
13 What is a priority queue
14 Min heaps and Max heaps
15 Priority queue inserting elements
16 Priority queue removing elements
17 Priority queue source code

Union find Disjoint set
18 Union find introduction
19 Kruskal’s Algorithm
20 Union and find operations
21 Path compression
22 Union find source code

Binary search trees
23 Introduction to binary trees
24 Binary search tree insertions
25 Binary search tree removals
26 Binary tree traversals
27 Binary search tree source code

Hash tables
28 Hash table hash functions
29 Hash table separate chaining
30 Hash table separate chaining source code
31 Hash table open addressing
32 Hash table linear probing
33 Hash table quadratic probing
34 Hash table double hashing
35 Hash table removing key-value pairs
36 Hash table open addressing source code

Fenwick tree Binary indexed tree
37 Fenwick tree range queries
38 Fenwick tree point updates
39 Fenwick tree construction
40 Fenwick tree source code

AVL Tree
41 Tree rotations
42 AVL tree insertions
43 AVL tree removals
44 AVL tree source code

Indexed Priority Queue
45 Introduction to indexed priority queues
46 Indexed priority queue source code

Sparse Tables
47 Sparse Table
48 Sparse Table Source Code