This course is designed to provide learners with a comprehensive understanding of data structures and algorithms, equipping them with the knowledge…
This course is designed to provide learners with a comprehensive understanding of data structures and algorithms, equipping them with the knowledge to …
Learning Mode: Learn at ALC or at Home
Detailed Course Curriculum
Hands-on module breakdown aligned with MKCL production standards and industry requirements.
Introduction to Data Structures
Mathematical Notations
Contradiction
Mathematical Induction
Mathematical Prerequisites
Introduction to Algorithm
Asymptotic Notations
Variables and Datatypes
Decisions
Switch Case
Array
Functions
Pointers
Object Oriented Programming
Structure
Data Types
Union
Miscellaneous Problems and Solutions
Introduction
Loop
Recursion
Backtracking
Recursion and Backtracking: Problems
Introduction to Array
Array Operations
Introduction
Two Dimensional Array Operations
Array of Pointer
String Introduction
Programming String Operations
Array of String
Pointers and Strings
Pattern Matching
String Matching
Linked List
Programming Linked List
Circular Linked List Introduction
Programming Circular Linked List
Doubly Linked List
Programming Doubly Linked List
Comparison of Array and Linked List
Recursive Display of Linked List
Circular Linked problems and other concepts
Matrix Introduction
Lower Triangular Matrix
Upper Triangular Matrix
Symmetric Matrix
Tri-Diagonal and Tri-band Matrix
Toeplitz Matrix
Menu Driven Program for Matrices
Sparse Matrix
Operations on Sparse Matrices
Introduction to Stacks
Stack using Array
Stack using Linked List
Parentheses Matching
Operators
Infix to Prefix Conversion
Postfix to Prefix Conversion
Postfix to Infix Conversation
Infix to postfix conversion
Evaluation of Postfix Expression
Stack: Problem and Solution
Introduction to Queue
Queue as an array
Queue as a linked list
Queue: Problems and Solutions
Introduction to Double ended Queue
Programming Deque
Priority Queue
Circular Queue
Introduction to Trees
Strict and Complete Binary Tree comparison
Tree: Problems and Solutions
Binary Tree
Traversal of a Binary Tree
Binary Tree: Problems and Solutions
Introduction
Operation on BST - search and insert
Deletion from a BST
Programming: Binary Search Tree
Generating BST from preorder
Applications of Binary Tree
Generating BST from post order
Binary Search Tree: Problems and Solution
Introduction
Operation on AVL tree
Programming various operations on AVL
AVL Tree: Problems and Solution
Balancing AVL tree
Programming Balancing of AVL
2-3 Trees Introduction
2-3-4 trees Introduction
Searching in a 2-3 Tree
Insertion in a 2-3 Tree
Deletion from a 2-3 Tree
Introduction to red black tree
Operations on red black tree
Operation on red black tree to a 2-3-4 tree
Priority Queue
Introduction to Heap
Insertion in a heap
Heap: Problems, Solution and Implementation
Heap as a priority queue and Implementation
Heap as a priority queue and Implementation
Replacement of a node in heap
Introduction to Disjoint subsets
Fast find implementation
Fast Union Implementation
Definition and terminologies
Depth First Search (DFS)
Breadth First Search (BFS)
Spanning Tree
Disjoint subsets
Minimum Spanning Tree
Prim’s method
Kruskal’s method
Programming: Minimal spanning tree
Introduction
Linear Search
Binary Search
Interpolation Search
Introduction to sorting
Bubble Sort
Selection Sort
Insertion Sort
Shell Sort
Comparison of Sorting Methods
Merge Sort
Quick Sort
Counting Sort
Radix Sort
Bucket Sort
Introduction to Symbol table
Array Implementation of Symbol Table
Linked List Implementation of Symbol Table
Other implementation
Comparison of implementation methods
Introduction to Hashing
Chaining
Linear Probing
Double Hashing
Hash Functions
Introduction to Single Shortest Path
Dijkstra’s Algorithm
Bellman-Ford Algorithm
Introduction to Greedy Approach
Huffman Coding Algorithm
Huffman Coding Algorithm
Fractional Knapsack problem
Dynamic Programming
Algorithm: 0/1 Knapsack Problem
Matrix Multiplication
Chain Matrix Multiplication
Divide and Conquer Approach
Binary Search
Strassen’s Matrix Chain Multiplication
Introduction to Branch and Bound Approach
4-Queens Problem
Least Cost search
15-puzzle problem
FIFO - Branch and Bound
Introduction
Partition Based Selection
Linear Search
Finding K-smallest elements
Selection Algorithm: Problems and Solutions
Introduction to Travelling Salesman Problem
Introduction to All Pairs Shortest Path Problem
Job Scheduling Problem
Coin Change Problem
Introduction to NP completeness
Polynomial Time Reduction algorithms
NP hard and NP complete Problems
SAT problem
NP problems: Examples
Compaction of Blocks and storage
First-Fit
Best-Fit
Improvement in the first fit algorithm
Freeing Storage Blocks
Dynamic Memory Allocation: Problems and Solutions
Revisiting Programming Concepts
Revisiting data structures
Revisiting algorithmic concepts
Miscellaneous problems and solutions
Eligibility Criteria
• Basic knowledge of computers and keen desire to build skills in this field.
• Open to students, job seekers, and working professionals.
Official Certification
• Official MKCL KLiC Certificate upon successful completion of the course and evaluations.
Work-Centric Learning Approach
• Step 1: Learners are given an overview of the course and its connection to life and work
• Step 2: Learners are exposed to the specific tool(s) used in the course through the various real-life applications of the tool(s).
• Step 3: Learners are acquainted with the careers and the hierarchy of roles they can perform at workplaces after attaining increasing levels of mastery over the tool(s).
• Step 4: Learners are acquainted with the architecture of the tool or tool map so as to appreciate various parts of the tool, their functions, utility and inter-relations.
• Step 5: Learners are exposed to simple application development methodology by using the tool at the beginner’s level.
• Step 6: Learners perform the differential skills related to the use of the tool to improve the given ready-made industry-standard outputs.
• Step 7: Learners are engaged in appreciation of real-life case studies developed by the experts.
• Step 8: Learners are encouraged to proceed from appreciation to imitation of the experts.
• Step 9: After the imitation experience, they are required to improve the expert’s outputs so that they proceed from mere imitation to emulation.
• Step 10: Emulation is taken a level further from working with differential skills towards the visualization and creation of a complete output according to the requirements provided. (Long Assignments)
• Step 11: Understanding the requirements, communicating one’s own thoughts and presenting are important skills required in facing an interview for securing a work order/job. For instilling these skills, learners are presented with various subject-specific technical as well as HR-oriented questions and encouraged to answer them.
• Step 12: Finally, they develop the integral skills involving optimal methods and best practices to produce useful outputs right from scratch, publish them in their ePortfolio and thereby proceed from emulation to self-expression, from self-expression to self-confidence and from self-confidence to self-reliance and self-esteem!
Ready to start Data Structures using C and C++?
Join our upcoming batch at ZICA Kalyani center with certified instructors.
MKCL Certified Program
Admissions Open 2026
Flexible Offline & Hybrid Batches
Course Overview
Duration:120 hours
Track:Software Development
Skill Level:Foundation
Language:English
Mode:Learn at ALC or at Home
Certificate:Official MKCL
Key Course Highlights:
Students will become proficient in C and C++ programming languages, specifically in the context of data structures.
Ability to design, implement, and analyse algorithms for solving various computational problems.
Proficiency in implementing and utilizing various data structures such as arrays, linked lists, stacks, queues, trees, and graphs.
Ability to apply theoretical knowledge to practical problems in software development and other computational fields.
A solid foundation for pursuing advanced studies and research in computer science and related fields.
Comprehensive understanding of various algorithmic approaches, including iterative, recursive, divide-and-conquer, dynamic programming, and greedy algorithms.
Development of critical thinking skills to evaluate and choose the best data structures and algorithms for a given problem.
Preparation for careers in software engineering, data analysis, and other technology-driven fields where data structures and algorithms play a crucial role.