Algorithms Bootcamp in C++
4.6 (202 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
8,148 students enrolled

Algorithms Bootcamp in C++

Recursion, backtracking, dynamic programming and data structures (linked lists, queues, stacks and binary search trees)
4.6 (202 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
8,148 students enrolled
Created by Holczer Balazs
Last updated 7/2020
English
English [Auto]
Current price: $12.99 Original price: $19.99 Discount: 35% off
14 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • 3 articles
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • what is recursion
  • what are backtracking and dynamic programming
  • what are the fundamental data structures: array, linked lists, stacks, queues and binary search trees
Course content
Expand all 79 lectures 08:00:10
+ Algorithms - Recursion
10 lectures 48:50
Recursion and stack memory (stack overflow)
10:22
Factorial problem
05:22
Fibonacci-numbers problem
04:51
Fibonacci-numbers with tail recursion
00:20
Binary search with recursion
05:43
Towers of Hanoi introduction
06:00
Towers of Hanoi implementation
04:14
Recursion and iteration (differences)
01:43
+ Algorithms - Backtracking
8 lectures 01:04:15
What is backtracking?
06:06
N-queens problem introduction
10:10
N-queens problem implementation
12:41
Coloring problem introduction
09:12
Coloring problem implementation
09:01
Knight's tour problem introduction
04:06
Knight's tour problem implementation
09:08
Problems with NP-complete problems
03:51
+ Algorithms - Dynamic Programming
6 lectures 47:09
What is dynamic programming?
03:22
Fibonacci numbers introduction
05:34
Fibonacci numbers implementation
04:34
Knapsack problem introduction
12:49
Knapsack problem example
13:18
Knapsack problem implementation
07:32
+ Data Structures - Arrays
3 lectures 18:43
Arrays introduction - basics
05:55
Arrays introduction - operations
05:53
Arrays in C++
06:55
+ Data Structures - Linked Lists
4 lectures 33:13
Linked lists theory - basics
07:09
Linked list theory - operations
09:32
Linked list theory - linked lists versus arrays
06:36
Linked list implementation
09:56
+ Data Structures - Stacks
5 lectures 28:55
Stack introduction
04:00
Stacks in memory management ( stacks, heaps )
07:23
Stacks and recursive method calls
07:02
Stacks implementation with arrays
06:54
Stack implementation with linked lists
03:36
+ Data Structures - Queues
2 lectures 12:17
Queues introduction
05:12
Queue implementation with linked list
07:05
+ Data Structures - Trees
9 lectures 51:09
Binary search trees theory - basics
10:23
Binary search trees theory - search, insert
04:25
Binary search trees theory - delete
06:08
Binary search trees theory - in-order traversal
04:25
Binary search trees theory - running times
02:10
Binary search tree implementation I
05:45
Binary search tree implementation II
05:25
Binary search tree implementation III
09:22
Practical (real-world) applications of trees
03:06
Requirements
  • C++ fundamentals
Description

This course is for those who are interested in computer science and want to implement the algorithms and given data structures in C++ from scratch. In every chapter you will learn about the theory of a given data structure or algorithm and then you will implement them from scratch.

Chapter 1: Recursion

  • theory behind recursion (recursive function calls)

  • recursion and stack memory of the OS

  • recursive problems: binary search and Towers of Hanoi problem

Chapter 2: Backtracking

  • what is backtracking

  • how to solve problems with backtracking

  • N-queens problem, coloring problem and knight's tour

Chapter 3: Dynamic Programming

  • overlapping subproblems and dynamic programming

  • what is "memoization"

  • Fibonacci numbers and knapsack problem

Chapter 4: Data Structures

  • data structures and abstract data types (ADTs)

  • arrays and linked lists

  • stacks

  • queues

  • binary search trees

  • priority queues (heaps)

  • associative arrays (maps)

Thanks for joining my course, let's get started!

Who this course is for:
  • Intermediate C++ developers curious about algorithms and data structures