Data Structures & Algorithms !

28h 40m 46s
English
Paid
July 8, 2024

Learn data structures and algorithms from scratch. Start with basic data structures and work your way up to intermediate. This course is for all those who want to learn data structure and algorithm from an absolute basic to an intermediate level. We don't expect you to have any prior knowledge of data structures or algorithms, but a basic prior knowledge of Java will be helpful.

Watch Online Data Structures & Algorithms !

Join premium to watch
Go to premium
# Title Duration
1 S01 - L01 -- Course Breakdown 07:09
2 S01 - L02 -- What is DS and Algo 04:37
3 S01 - L03 -- Why companies ask DS 03:28
4 S01 - L04 -- DS in every day life 03:30
5 S01 - L05 -- Types of DS 03:42
6 S01.1-L01--What is Recursion 11:59
7 S01.1-L02--Why learn Recursion 05:07
8 S01.1-L03--Format of Recursion Method 04:09
9 S01.1-L04--How Recurssion works internally 14:41
10 S01.1-L05--Finding Factorial using Recursion 08:22
11 S01.1-L06--Finding Fibonacci using Recursion 07:42
12 S01.1-L07--Recursion vs Iteration 03:19
13 S01.1-L08--When to Use & Avoid Recursion 04:43
14 S01.1-L09--Practical Uses of Recursion 03:16
15 S02-L01 -- What is Algo Run Time Analysis 03:14
16 S02-L02 -- What are Notations 10:39
17 S02-L03 -- Examples of Notations 07:55
18 S02-L04 -- Examples of Time Complexity 06:52
19 S02-L05 -- Finding Time Complexity of Iterative Algo 08:14
20 S02-L06 -- Finding Time Complexity of Recursive Algo#1 11:10
21 S02-L07 -- Finding Time Complexity of Recursive Algo#2 17:48
22 S03 - L01 -- What and Why of Array 07:02
23 S03 - L02 -- Types of Array 07:18
24 S03 - L03 -- How is Array represented in Memory 06:01
25 S03 - L04 -- Create an Array 11:26
26 S03 - L05 -- Insert Traverse in 1D Array 07:05
27 S03 - L06 -- Access Search Delete in 1D Array 16:27
28 S03 - L07 -- Code 1D Array 13:45
29 S03 - L08 -- Time Complexity of 1D Array 04:02
30 S03 - L09 -- Create 2D Array 09:14
31 S03 - L10 -- 2D Array operations 14:49
32 S03 - L11 -- Time Complexity of 2D Array 02:56
33 S03 - L12 -- When to use Array 06:17
34 S03 - L13 -- Code 2D Array 14:33
35 S03 - L14 -- Practical uses of Array 07:31
36 S04 - L01 -- What is linked list 08:44
37 S04 - L02 -- Linked list vs Array 03:19
38 S04 - L03 -- Components of LinkedList 06:30
39 S04 - L04 -- Types of LinkedList 06:55
40 S04 - L05 -- Why so many types of LinkedList 07:57
41 S04 - L06 -- How is LinkedList stored in Memory 05:06
42 S04 - L07 -- Creation of Single LinkedList (SLL) 05:57
43 S04 - L08 -- Insertion in SLL - Dry Run 07:24
44 S04 - L09 -- Insertion in SLL - Algo 10:57
45 S04 - L10 -- Traversal of SLL 03:50
46 S04 - L11 -- Search node in SLL 04:53
47 S04 - L12 -- Deletion of node from SLL - Dry Run 09:14
48 S04 - L13 -- Deletion of node from SLL - Algo 08:48
49 S04 - L14 -- Delete entire SLL 03:15
50 S04 - L15 -- Time Complexity of SLL 03:30
51 S04 - L16 -- Creation of Circular Single LinkedList (CSLL) 04:07
52 S04 - L17 -- Insertion of data in CSLL - Dry Run 06:16
53 S04 - L18 -- Insertion of data in CSLL - Algo 07:45
54 S04 - L19 -- Traverse CSLL 02:31
55 S04 - L20 -- Search a node in CSLL 04:54
56 S04 - L21 -- Delete a node from CSLL - Dry Run 05:35
57 S04 - L22 -- Deletion of node from CSLL - Algo 07:05
58 S04 - L23 -- Deletion of entire CSLL 04:02
59 S04 - L24 -- Time Complexity of CSLL 04:17
60 S04 - L25 -- Create Double Linked List (DLL) 05:59
61 S04 - L26 -- Insert node in DLL - Dry Run 08:00
62 S04 - L27 -- Insert node in DLL - Algo 13:35
63 S04 - L28 -- Traverse DLL 02:32
64 S04 - L29 -- Reverse Traversal of DLL 03:21
65 S04 - L30 -- Search a node in DLL 03:13
66 S04 - L31 -- Delete a node from DLL - Dry Run 07:21
67 S04 - L32 -- Delete a node from DLL - Algo 09:40
68 S04 - L33 -- Delete entire DLL 04:47
69 S04 - L34 -- Time Complexity of DLL 04:13
70 S04 - L35 -- Create Double Circular LinkedList (CDLL) 07:37
71 S04 - L36 -- Insert node in CDLL - Dry Run 11:06
72 S04 - L37 -- Insert node in CDLL - Algo 09:46
73 S04 - L38 -- Traverse CDLL 03:36
74 S04 - L39 -- Reverse traverse CDLL 03:28
75 S04 - L40 -- Search a node in CDLL 04:31
76 S04 - L41 -- Delete a node from CDLL - Dry Run 08:45
77 S04 - L42 -- Delete a node from CDLL - Algo 10:38
78 S04 - L43 -- Delete entire CDLL 06:29
79 S04 - L44 -- Time Complexity of CDLL 04:27
80 S04 - L45 -- SLL vs CSLL vs DLL vs DLL 06:43
81 S04 - L46 -- Practical uses of LinkedList 05:10
82 L01 -- What and Why of Stack 04:55
83 L02 -- ARRAY - Create & Push 06:19
84 L03 -- ARRAY - Pop, Peek, isEmpty, isFull, Delete 07:52
85 L04 -- LinkedList - Create, Push, Pop 06:36
86 L05 -- LinkedList - Peek, Delete 05:06
87 L06 -- When to use or avoid Stack 03:36
88 S06 - L01 -- What and Why of Queue 03:53
89 S06 - L02 -- LINEAR QUEUE(Array) - Create, Enqueue 06:59
90 S06 - L03 -- LINEAR QUEUE((Array)) - deQueue, isEmpty, isFull, Delete 07:23
91 S06 - L04 -- Why Circular Queue 04:45
92 S06 - L05 -- CIRCULAR QUEUE(Array) - Enqueue 05:57
93 S06 - L06 -- CIRCULAR QUEUE(Array) - Dequeue 03:19
94 S06 - L07 -- CIRCULAR QUEUE(Array) - Peek, isEmpty, isFull, Delete 05:22
95 S06 - L08 -- LINEAR QUEUE(LL) - Enqueue 05:31
96 S06 - L09 -- LINEAR QUEUE(LL) - DeQueue 03:11
97 S06 - L10 -- LINEAR QUEUE(LL) - Peek, isEmpty, Delete 04:04
98 S06 - L11 -- Array vs LinkedList Implementation 04:29
99 S08.01 - L01 -- What is Tree 09:30
100 S08.01 - L02 -- Why learn Tree 02:08
101 S08.01 - L03 -- Tree Terminologies - Part#1 10:01
102 S08.01 - L03 -- Tree Terminologies - Part#2 04:29
103 S08.01 - L04 -- What & Why of Binary Ttree 04:15
104 S08.01 - L05 -- Types of Binary Tree 05:29
105 S08.01 - L06 -- How is Tree Represented in Code 08:54
106 S08.01 - L07 -- Create blank Binary Tree(LL) 03:17
107 S08.01 - L08 -- Pre-order traversal Binary Tree(LL) 14:45
108 S08.01 - L09 -- In-order traversal Binary Tree(LL) 06:18
109 S08.01 - L10 -- Post-order traversal Binary Tree(LL) 06:33
110 S08.01 - L11 -- Level-order traversal Binary Tree(LL) 07:26
111 S08.01 - L12 -- Search for value in Binary Tree(LL) 08:10
112 S08.01 - L13 -- Insert value in Binary Tree(LL) 05:54
113 S08.01 - L14 -- Delete value from Binary Tree(LL) 06:55
114 S08.01 - L15 -- Delete Binary Tree(LL) 03:59
115 S08.01 - L16 -- Create Binary Tree(Array) 05:14
116 S08.01 - L17 -- Insert value in Binary Tree(Array) 05:55
117 S08.01 - L18 -- Search for value in Binary Tree(Array) 03:39
118 S08.01 - L19 -- Inorder traversal of Binary Tree(Array) 06:18
119 S08.01 - L20 -- Pre-order traversal of Binary Tree(Array) 03:48
120 S08.01 - L21 -- Post-order traversal of Binary Tree(Array) 04:18
121 S08.01 - L22 -- Level-order traversal of Binary Tree(Array) 02:46
122 S08.01 - L23 -- Delete node from Binary Tree(Array) 05:34
123 S08.01 - L24 -- Delete Binary Tree(Array) 03:26
124 S08.01 - L25 -- Binary Tree (Array vs Linked List) 04:44
125 S08.02 - L01 -- What & Why of BST 04:45
126 S08.02 - L02 -- Creation & Searching in BST 10:00
127 S08.02 - L03 -- Traversing a BST 07:37
128 S08.02 - L04 -- Inserting a node in BST 13:58
129 S08.02 - L05 -- Deleting a node from BST 15:55
130 S08.02 - L06 -- Deleting a BST 03:43
131 S08.03 - L01 -- Why learn AVL Tree 06:49
132 S08.03 - L02 -- What is AVL Tree 10:21
133 S08.03 - L03 -- Create Search Traverse AVL Tree 06:28
134 S08.03 - L04 -- Insert in AVL_LL Theory 12:02
135 S08.03 - L05 -- Insert in AVL_LL Algorithm 04:48
136 S08.03 - L06 -- Insert in AVL LR 08:13
137 S08.03 - L07 -- Insert in AVL RR 08:24
138 S08.03 - L08 -- Insert in AVL RL 06:23
139 S08.03 - L09 -- Insert End to End Case 14:20
140 S08.03 - L10 -- Delete LL LR RR RL 11:27
141 S08.03 - L11 -- Delete End to End Case 11:57
142 S08.03 - L12 -- Delete AVL Tree & Tree Comparison 07:37
143 S08.04 - L01 -- What Why and Type of Heap 12:27
144 S08.04 - L02 -- Create, Peek, Size of Heap 04:45
145 S08.04 - L03 -- Insert element in Heap 05:12
146 S08.04 - L04 -- Extract and Delete from Heap 06:04
147 S08.04 - L05 -- Why avoid Reference based implementation ? 03:50
148 S08.05 - L01 -- What and Why of Trie 05:57
149 S08.05 - L02 -- Create Insert in Trie 06:53
150 S08.05 - L03 -- Search a String in Trie 02:36
151 S08.05 - L04 -- Delete a String from Trie 07:38
152 S08.05 - L05 -- Practical Uses of Trie 02:33
153 S09 - L01 -- Introduction to Hashing 03:39
154 S09 - L02 -- Why learn Hashing ? 05:13
155 S09 - L03 -- Introduction to Hash Functions 08:53
156 S09 - L04 -- Types of Collision Resolution Techniques 14:55
157 S09 - L05 -- What happens when Hash Table is full ? 04:31
158 S09 - L06 -- Collision Resolution Techniques Compared 08:27
159 S09 - L07 -- Practical Use of Hashing 06:41
160 S09 - L08 -- Hashing vs Other DS 04:37
161 S10 - L01 -- What and Why of Sorting 03:55
162 S10 - L02 -- Types of Sorting Techniques 07:15
163 S10 - L03 -- Sorting Terminologies 05:02
164 S10 - L04 -- Bubble Sort 07:47
165 S10 - L05 -- Selection Sort 06:08
166 S10 - L06 -- Insertion Sort 08:52
167 S10 - L07 -- Bucket Sort 08:35
168 S10 - L08 -- Merge Sort 11:12
169 S10 - L09 -- Quick Sort Part#1 12:37
170 S10 - L09 -- Quick Sort Part#2 06:01
171 S10 - L10 -- HeapSort 12:42
172 S10 - L11 -- Sorting Techniques compared 02:15
173 S11 - L01 -- What and Why of Graphs 08:57
174 S11 - L02 -- Graph Terminologies 05:12
175 S11 - L03 -- Types of Graphs 04:00
176 S11 - L04 -- Graph Representation in Code 07:09
177 S11 - L05 -- BFS Algorithm 08:30
178 S11 - L06 -- BFS Time Complexity 06:34
179 S11 - L07 -- DFS Algorithm 08:08
180 S11 - L08 -- DFS Time Complexity 05:59
181 S11 - L09 -- BFS vs DFS 04:27
182 S11 - L10 -- What is Topological Sort 03:45
183 S11 - L11 -- Topological Sort Dry Run 06:33
184 S11 - L12 -- Why Topological Sort Works 07:12
185 S11 - L13 -- Topological Sort Algorithm 06:39
186 S11 - L14 -- What is Single Source Shortest Path Problem(SSSP) 06:30
187 S11 - L15 -- BFS for SSSP 08:08
188 S11 - L16 -- Why BFS does not works for Weighted Graph SSSP 04:04
189 S11 - L17 -- Why DFS does not works for SSSP 03:02
190 S11 - L18 -- Dijkstra for SSSP 11:17
191 S11 - L19 -- Why Dijkstra does not work for Negative Cycle 06:07
192 S11 - L20 -- BellmanFord Dry run for SSSP 09:48
193 S11 - L21 -- BellanFord Algorithm for SSSP 04:28
194 S11 - L22 -- How Bellman Ford works for Negative Cycle 09:09
195 S11 - L23 -- Why BellmanFord runs for V-1 times 10:09
196 S11 - L24 -- BFS vs Dijkstra vs BellmanFord 04:33
197 S11 - L25 -- What is All Pair Shortest Path Problem(APSP) 05:35
198 S11 - L26 -- Dry run of BFS Dijkstra Bellman for APSP 05:18
199 S11 - L27 -- Floyd Warshall Algorithm for APSP 10:09
200 S11 - L28 -- Why Floyd Warshall Algorithm always works 08:13
201 S11 - L29 -- Why Floyd does not works for Negative Cycle 03:50
202 S11 - L30 -- BFS vs Dijkstra vs Bellman vs Floys 04:25
203 S11 - L31 -- What is Minimum Spanning Tree (MST) 04:39
204 S11 - L32.1 -- DisjointSet 08:49
205 S11 - L32.2 -- Kruskals Algorithm 12:40
206 S11 - L33 -- Prims Algorithm Dry Run 06:34
207 S11 - L34 -- Prims Algorithm Explained 05:23
208 S11 - L35 -- Prims vs Kruskal 02:34
209 S12.1 - L01 -- Magic Framework 04:46
210 S12.2 - L01 -- Greedy Algo Introduction 06:18
211 S12.2 - L02 -- Known Algos 10:51
212 S12.2 - L03 -- Activity Selection Problem 08:05
213 S12.2 - L04 -- Coin Change Problem 09:07
214 S12.2 - L05 -- Fractional Knapsack Problem 11:56
215 S12.3 - L01 -- What and Why of Divide&Conquer 07:35
216 S12.3 - L02 -- Binary Search, Quick, Merge Sortt 05:48
217 S12.3 - L03 -- Fibonacci Series 03:32
218 S12.3 - L04 -- Number Factor 09:38
219 S12.3 - L05 -- House thief 08:49
220 S12.3 - L06 -- Convert One String to Another 12:58
221 S12.3 - L07 -- Zero-One Knapsack 07:49
222 S12.3 - L08 -- Longest Common Subsequence 08:52
223 S12.3 - L09 -- Longest Palindromic Subsequence 09:47
224 S12.3 - L10 -- Longest Palindromic Substring 09:11
225 S12.3 - L11 -- Min Cost to Reach End of Array 07:13
226 S12.3 - L12 -- Number of Paths to reach last cell with given Cost 10:30
227 S12.4 - L01 -- What and Why of Dynamic Programming 04:46
228 S12.4 - L02 -- Top Down Approach 06:41
229 S12.4 - L03 -- Bottom Up Approach 07:45
230 S12.4 - L04 -- Is Merge Sort Dynamic Programming ? 03:57
231 S12.4 - L05 -- Number Factor Problem 15:26
232 S12.4 - L06 -- HouseThief Problem 12:15
233 S12.4 - L07 -- Convert One String to Another 11:20
234 S12.4 - L08 -- Zero One Knapsack Problem 13:16
235 S12.4 - L09 -- Longest Common Subsequence 10:20
236 S12.4 - L10 -- Longest Palindromic Subsequence 10:53
237 S12.4 - L11 -- Longest Palindromic Substring 12:34
238 S12.4 - L12 -- Min Cost to Reach End of Array 12:35
239 S12.4 - L13 -- Ways to Reach last cell 24:53

Similar courses to Data Structures & Algorithms !

Java Streams API

Java Streams APIamigoscode (Nelson Djalo)

Duration 2 hours 33 minutes 12 seconds
Cats

Catsrockthejvm.com

Duration 10 hours 39 minutes 36 seconds
Java Master Class

Java Master Classamigoscode (Nelson Djalo)

Duration 24 hours 40 minutes 37 seconds
Java Design Patterns & SOLID Design Principles

Java Design Patterns & SOLID Design Principlesudemy

Duration 17 hours 5 minutes 6 seconds
Java Crew #2

Java Crew #2podlodka.io

Duration 12 hours 12 minutes 58 seconds
Hibernate and Java Persistence API (JPA) Fundamentals

Hibernate and Java Persistence API (JPA) Fundamentalsudemy

Duration 7 hours 24 minutes 19 seconds
Java Programming Bootcamp: Zero to Mastery

Java Programming Bootcamp: Zero to Masteryzerotomastery.io

Duration 9 hours 15 minutes 36 seconds
Java Programming Masterclass covering Java 11 & Java 17

Java Programming Masterclass covering Java 11 & Java 17udemy

Duration 80 hours 13 minutes 14 seconds