Advanced Data Structures using C and C++
Track Software Development
Duration 60 hours
Skill Level Advanced
Language English

About this Course

Implement trees, graphs, hashing, and efficient algorithms in C/C++.
Learning Mode: Learn at ALC or at Home

Detailed Course Curriculum

Hands-on module breakdown aligned with MKCL production standards and industry requirements.

  • 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 Advanced Data Structures using C and C++?

Join our upcoming batch at ZICA Kalyani center with certified instructors.