Library

Course: Easy to Advanced Data Structures

Easy to Advanced Data Structures

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 is the target audience?

  • Individuals hungry for new knowledge
  • Students who want a fundamental understanding of data structures
Basic knowledge
  • Basic computer science knowledge
What you will 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
Curriculum
Lectures quantity: 43
Common duration: 06:57:21
Session #1 Introduction
  • Abstract data types Introduction  
  • Understanding time/space complexity  
Session #2 Static and dynamic arrays
  • Static and dynamic arrays  
  • Dynamic array source code  
Session #3 Linked lists
  • Linked list introduction  
  • Doubly linked list source code  
Session #4 Stacks
  • Understanding stacks  
  • Stack implementation details  
  • Stack source code  
Session #5 Queues
  • Understanding queues  
  • Breadth first search and queue implementation  
  • Queue source code  
Session #6 Priority queues
  • What is a priority queue?  
  • Min heaps and Max heaps  
  • Priority queue inserting elements  
  • Priority queue source code  
Session #7 Union find/Disjoint set
  • Union find introduction  
  • Kruskal's Algorithm  
  • Union and find operations  
  • Path compression  
  • Union find source code  
Session #8 Binary search trees
  • Introduction to binary trees  
  • Binary search tree insertions  
  • Binary search tree removals  
  • Binary tree traversals  
  • Binary search tree source code  
Session #9 Hash tables
  • Hash table hash functions  
  • Hash table separate chaining  
  • Hash table separate chaining source code  
  • Hash table open addressing  
  • Hash table linear probing  
  • Hash table quadratic probing  
  • Hash table double hashing  
  • Hash table removing key-value pairs  
  • Hash table open addressing source code  
Session #10 Fenwick tree/Binary indexed tree
  • Fenwick tree range queries  
  • Fenwick tree point updates  
  • Fenwick tree construction  
  • Fenwick tree source code  
Session #11 AVL Tree
  • Tree rotations  
  • AVL tree insertions  
  • AVL tree removals  
  • AVL tree source code  
reviews (0)
Average rating
0
0 voices
Detailed rating
5 stars
0%
4 stars
0%
3 stars
0%
2 stars
0%
1 stars
0%