DSA Course Contents: C++ Language
DSA Course Contents: C++ Language
C++ Language
● Storage Classes
● Pointers
● Pass by Value & Pass by Reference Pass by Pointers
● Arrays
● 2D Arrays
● Strings
● Structures
● Unions
Complexities
● Analysis of Algorithm
● Order of Growth
● Asymptotic Notations
● Big O Notation
● Omega Notations
● Theta notation
● Time Complexity of various loops
● Time complexity of recursion loops
● Space Complexity
Stacks
● Stacks Introduction
● Applications of Stack and Default Return Types
● Stack Implementation
● Balanced Parenthesis Problem
● Span of a Stock (Brute Force Way)
● Stock Span Problem (Optimised Approach)
● Previous Greater Element in an Array
● Next Greater Element in an Array
● Largest Rectangular Area Under a Histogram
● Largest Rectangle with all 1's
● Infix to PostFix
● Infix to PreFix
Queues
● Queues Application and Introduction
● Queues implementation
● Queues implementation in STL
● Circular Queues Introduction
● Circular Queues Implementation
Linked List
● Linked Lists Introduction
● Linked List Implementation
● Linked List Implementation in STL
● Linked List Insertion
● Linked List Insertion for a Position
● Deletion in a Singly Linked List
● Deletion in a Singly Linked List for a Position
● Doubly Linked List Insertion
● Doubly Linked List Deletion
● Circular Linked List Insertion at Start
● Circular Linked List Insertion at End
● Circular Linked List Deletion at the Head
● Circular Linked List Deletion of Kth Node
Trees
● Trees Introduction
● Types of Trees
● Binary Tree Creation in C++
● Post order
● PreOrder
● Inorder
● Max Depth : Height
● Print Nodes at Distance K
● Level Order Traversal
● Size of a Binary Tree
● Max Element in a Binary Tree
● Diameter of a Tree
● LCA
BST
● Binary Search Trees Introduction
● Search in BST
● Insertion in BST
● Deletion in a BST
● Floor in BST
● Ciel in BST
● Kth Smallest in BST
Hashing
● Hashing Introduction
● Direct Address Table and Hash Function
● Collision Handling
● Chaining in Hashing
● Linear Probing
● Quadratic Probing and Double Hashing
● Unordered Set in STL
● Unordered Map in STL
● Count Distinct Elements in an Array
● Print Frequency of Elements in an Array
● Intersection of Two Arrays Introduction
● Merge Two Arrays in a Sorted Way
● Remove Duplicates from a Sorted Array
● Union of Two Arrays
● Get Pair with Given Sum
Graphs
● Graphs Introduction
● Minimum Spanning Tree
● DFS in C++
● BFS in C++
● Graphs BFS and DFS for disconnected Graphs
● Checking if Path Exists b/w node S and E
● Printing the paths
● Shortest Path using BFS
● Kruskal Algorithm Introduction
● Detecting Cycles in MST
● Union Find Algorithm
● Kruskals Code
● Prims Algorithm Introduction
● Prims Algorithm Code
● Dijkstra shortest path Algorithm Introduction
● Dijkstra shortest path code
Bit Manipulation
● Bit Manipulation Introduction
● Bitwise Operators
● Ways to Swap Elements
● Bit Properties
● Bit Masking
● Power of 2 and 4
● Bit Masking Questions
● Duplicate Numbers
● Minimum Flips
Recursion
● Recursion Introduction
● Power using Recursion
● Fibonacci Series
● Last Occurrences in an Array
BackTracking
● Backtracking Introduction
● Lets Learn Backtracking
● Time Complexity Analysis of Permutations of a string
● What is your mobile number
● Pokemon match
● Lets rank IQ
● N Queens Problem
● Rat in a Maze
● Knight Tour Problem
Dynamic Programming
● Dynamic Programming Memoization
● Dynamic Programming Tabulation
● Count the possible decodings of a digit
● Longest Increasing Subsequence
● Staircase Problem
● Coin change problem
● Traverse a matrix using recursion
● Kadane Algorithm
● Longest Common Subsequence
● 1 - 0 Knapsack Problem