Time Complexity of Algorithms, Big O notation
Introduction to Stack concept
Writing C++ code for Stack
Stack applications i.e. decimal to binary conversion , Infix to post fix notation and its conversion , post fix evaluation
Implement Rat & Maze using stack
Introduction to Queue and its implementation
Application of Queue
Template class and functions in C++
Introduction to Recursion
Demonstration of recursion through stack and tree
Examples related to recursion
Introduction of Singly Link List with head pointer only
Creating link list with head and tail pointer
Creating insert, delete and Search function for link list with head pointer only.
Insertion at middle and link list without head
Sorting link list, recursive printing of link list, brain storming on link list
Doubly link list and creating different functions
Introduction and implementation of singly circular link list
Introduction and implementation of doubly circular link list
Introduction to Tree Concept
Introduction to binary search tree (BST)
BST implementation- code for insertion
In order, pre-order and post order traversal of tree tree (recursive code)
Debugging a code
Use of STL (builtin list, stack and queue)
Practice on BST
Recursive code for finding height of BST
Count total number of Leafs
Print number of leaves
Successor and Predecessor
More practice on BST
Finding internal nodes
Search a node in BST
Level wise traversal of BST
Closet and farthest leafs
Non recursive code of in-order traversal
Deleting a node in BST (discussion of four cases of deletion)
AVL Tree
AVL-Rotations and their Impact + Why the height of AVL is O(Log N)
Insertion and deletion in AVL Tree
Introduction to Red Black Tree
Discussion of cases of insertion in Red Black Tree(RBT)
Comparison of RBT and AVL
Introduction to Heap
Tree based implementation , HeapifyUp and HeapifyDown operation
Insert and Delete
Array Based Heap
Array/Vector Based Heap (HeapifyUp , HeapifyDown, BuildHeap, Insert, FindMin, DeleteMin, HeapSort)
Huffman Coding
Hashing(Chaining, Probing, Multiple Hashing)
Introduction to Hashing(Direct Addressing and its problem)
Designing your Hash function (polynomials)
Linear Probing, Quardatic Probing, and Multiple Hashing.
Examples related to different hashing technique and showing its impact
Introduction to Graph
Application of directed and in directed Graph(both weighted and unweighted)
Representing Graph in Programming
Through two dimensional struct array
Adjacency matrix
List Representation
Comparison of both list and Adjacency matrix
Traversing Graph using (Depth first search(DFS) and breadth first search(BFS))