We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Easy to Advanced Data Structures

William Fiset

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.

Read more

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

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.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

Introduction
Abstract data types Introduction
Understanding time/space complexity

Do your best to answer these complexity questions similar to those in the video.

Read more
How the use and and implement static and dynamic arrays
Static and dynamic arrays
QUIZ: dynamic arrays
Dynamic array source code
Linked lists
Linked list introduction
QUIZ: linked lists
Doubly linked list source code
Stacks
Understanding stacks
Stack implementation details
QUIZ: stacks
Stack source code
Queues
Understanding queues
QUIZ: queues I
Breadth first search and queue implementation
QUIZ: queues II
Queue source code
Priority queues
What is a priority queue?
Min heaps and Max heaps
Priority queue inserting elements
QUIZ: priority queue
Priority queue removing elements
Priority queue source code
Union find/Disjoint set
Union find introduction
Kruskal's Algorithm
Union and find operations
Path compression
Union find source code
QUIZ: union find
Binary search trees
Introduction to binary trees
Binary search tree insertions
Binary search tree removals
Binary tree traversals
QUIZ: tree traversals
Binary search tree source code
Hash tables
Hash table hash functions
Hash table separate chaining
Hash table separate chaining source code
QUIZ: hash functions and separate chaining
Hash table open addressing
Hash table linear probing
Hash table quadratic probing
Hash table double hashing
QUIZ: open addressing
Hash table removing key-value pairs
Hash table open addressing source code
Fenwick tree/Binary indexed tree
Fenwick tree range queries
Fenwick tree point updates
Fenwick tree construction
Fenwick tree source code
QUIZ: fenwick tree
Know how to an AVL tree work.
Tree rotations
AVL tree insertions
AVL tree removals
AVL tree source code
Indexed Priority Queue
Introduction to indexed priority queues
Indexed priority queue source code
Sparse table data structure

An introduction to sparse tables for fast range queries

Sparse table source code

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for beginners in the fundamentals of data structures
Teaches about data structures and their associated algorithms
Develops understanding of advanced data structures like binary trees, heaps, and hash tables
Provides clear explanations, high-quality animations, and step-by-step instructions
Includes coding exercises and multiple-choice questions to reinforce learning
Taught by William Fiset, an experienced instructor in data structures and algorithms

Save this course

Save Easy to Advanced Data Structures to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Easy to Advanced Data Structures with these activities:
Course Notes and Quizzes Review
Refresh and reinforce understanding of key concepts.
Show steps
  • Review course notes
  • Take practice quizzes
Introduction to Algorithms
Gain a comprehensive understanding of core algorithms and data structures.
Show steps
  • Read selected chapters
  • Solve practice problems
  • Discuss key concepts with peers
Algorithm Analysis
Improve problem-solving skills and deepen understanding of algorithm efficiency.
Show steps
  • Review time and space complexity concepts
  • Practice analyzing algorithms using Big O notation
  • Solve coding problems that involve algorithm analysis
Four other activities
Expand to see all activities and additional details
Show all seven activities
Data Structures Resource Library
Gather and organize a collection of useful data structures resources.
Show steps
  • Search for relevant resources
  • Categorize and organize the resources
  • Share the resource library with others
Study Group
Collaborate with peers to reinforce understanding and clarify concepts.
Show steps
  • Form a study group
  • Meet regularly
  • Discuss course material
  • Work on practice problems
Data Structure Implementation Report
Demonstrate understanding of data structures by creating a detailed report.
Show steps
  • Choose a data structure
  • Design and implement the data structure
  • Write a report documenting your work
Coding Competition
Test and improve problem-solving and algorithm design skills.
Browse courses on Coding Challenges
Show steps
  • Register for a coding competition
  • Practice solving coding problems
  • Participate in the competition
  • Analyze your performance

Career center

Learners who complete Easy to Advanced Data Structures will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Easy to Advanced Data Structures.
Introduction to Data Structures and Algorithms in C++
Most relevant
Data Structures Fundamentals
Most relevant
Data Structures and Algorithms in Python
Data Structures and Algorithm Design Part I | 数据结构与算法设计(上)
Advanced Data Structures in Java
Practical Data Structures & Algorithms in Java + HW
Data Structures and Algorithms In Java ( DSA )
Data Structures: An Active Learning Approach
Algorithms Data Structures in Java #1 (+INTERVIEW...
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser