What you'll learn
Mature understanding of data structures
Algorithms associated with data structures
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
Basic computer science knowledge
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
- 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.
Who this course is for:
- Individuals hungry for new knowledge
- Students who want a fundamental understanding of data structures
About the instructor
My name is William, I am a software engineer for Google Maps stationed in Mountain View California. I am a former ACM-ICPC world finalist and avid problem solver looking to share my knowledge of computer programming and problem-solving.
I teach courses on Udemy because there exists a need to create high quality content about complex topics in computer science. The areas I focus on are data structures and algorithms; together they are the most important topics to master on the road to becoming an exemplary software engineer. Consider enrolling in one or more of the courses I have developed; they are designed for everyone, whether you are a beginner or advanced.