
Object-Oriented Data Structures in C++
Apply OOP principles to implement modular and reusable data structures in C++.

Track
Software Development
Level
Intermediate
Language
English
Duration
30 hours
Learning Mode
Learn at ALC or at Home
Introduction
- Understand the fundamentals of object-oriented data structures and their real-world applications.
- Describe the properties and operations of Binary Search Trees, AVL trees, and other search trees.
- Implement various tree-based data structures and perform operations like insert, delete, and search.
- Analyze heap structures for priority queue implementation and dynamic memory management.
- Develop algorithms for constructing and balancing AVL and Red-Black Trees.
- Apply disjoint set operations in the context of union-find and fast find problems.
- Compare graph traversal methods such as DFS and BFS for efficient searching.
- Construct Minimum Spanning Trees using Prim’s and Kruskal’s algorithms.
- Differentiate among sorting techniques and their time complexities.
- Demonstrate programming ability through the practical implementation of all studied data structures.
What you'll learn ?
- Explain how different object-oriented data structures optimize data handling and processing.
- Identify suitable tree structures like BST, AVL, and Red-Black trees for specific use cases.
- Write C++ programs to perform insertion, deletion, and searching on various trees.
- Evaluate heap operations for effective use in real-time priority queue problems.
- Balance AVL trees using rotations and apply Red-Black Tree transformations.
- Utilize union-find algorithms in problems involving disjoint subsets.
- Perform depth-first and breadth-first graph traversals to explore complex data networks.
- Build Minimum Spanning Trees using standard algorithms like Prim’s and Kruskal’s.
- Assess the efficiency of various sorting methods based on input data and use-case.
- Create functional C++ programs integrating multiple data structures for given problem statements.
Syllabus
Binary Search Tree
- 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
AVL Trees
- Introduction
- Operation on AVL tree
- Programming various operations on AVL
- AVL Tree: Problems and Solution
AVL Tree
- Balancing AVL tree
- Programming Balancing of AVL
Search Trees
- 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
Search Tree
- Introduction to red black tree
- Operations on red black tree
- Operation on red black tree to a 2-3-4 tree
Heap
- 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
Disjoint Subsets
- Introduction to Disjoint subsets
- Fast find implementation
- Fast Union Implementation
Graphs
- Definition and terminologies
- Depth First Search (DFS)
- Breadth First Search (BFS)
- Spanning Tree
- Disjoint subsets
Minimal Spanning Tree
- Minimum Spanning Tree
- Prim’s method
- Kruskal’s method
- Programming: Minimal spanning tree
Searching
- Introduction
- Linear Search
- Binary Search
- Interpolation Search
Sorting
- Introduction to sorting
- Bubble Sort
- Selection Sort
- Insertion Sort
- Shell Sort
- Comparison of Sorting Methods
- Merge Sort
- Quick Sort
Work-Centric Approach
The academic approach of the course focuses on ‘work-centric’ education. With this hands-on approach, derive knowledge from and while working to make it more wholesome, delightful and useful. The ultimate objective is to empower learners to also engage in socially useful and productive work. It aims at bringing learners closer to their rewarding careers as well as to the development of the community.
- 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!