
Basics of Data Structures using C and C++
Understand arrays, stacks, queues, and linked lists using C/C++ basics.

Track
Software Development
Level
Foundation
Language
English
Duration
60 hours
Learning Mode
Learn at ALC or at Home
Introduction
- To introduce students to fundamental concepts of data structures and their importance in problem-solving.
- To equip students with the ability to implement data structures like arrays, stacks, queues, linked lists, and trees using C and C++.
- To develop analytical skills for designing algorithms and understanding their computational complexity.
- To familiarize students with advanced programming techniques, including recursion, backtracking, and dynamic memory management.
- To prepare students to apply data structures in real-world scenarios and optimize software performance.
What you'll learn ?
- Understand and explain the role of data structures in efficient algorithm design.
- Implement a variety of data structures and algorithms in C and C++.
- Analyze the time and space complexity of algorithms.
- Solve real-world problems using appropriate data structures and programming techniques.
- Demonstrate proficiency in handling complex programming challenges using recursion, backtracking, and object-oriented programming.
- Develop robust and efficient solutions to computational problems.
- Course Introduction:
- The KLiC Certificate in Data Structures using C & C++ is designed to provide students with a foundational and practical understanding of data structures and their applications in programming. With a focus on C and C++, the course equips learners to design efficient algorithms, implement complex data structures, and solve computational problems effectively. Covering topics from basic building blocks to advanced data structures like trees and queues, the course emphasizes both theoretical concepts and hands-on programming skills.
Syllabus
Introduction and Environment Setup
- Introduction to Data Structures
Basic Building Blocks
- Mathematical Notations
- Contradiction
- Mathematical Induction
- Mathematical Prerequisites
Introduction to Algorithm
- Introduction to Algorithm
- Asymptotic Notations
Programming Essentials I - Basics and Decisions
- Variables and Datatypes
- Decisions
Programming Essentials - II
- Switch Case
- Array
- Functions
- Pointers
- Object Oriented Programming
Programming Essentials IV – Miscellaneous
- Data Types
- Union
- Miscellaneous Problems and Solutions
Programming Techniques: Iteration
- Introduction
- Loop
Programming Techniques: Recursion and Backtracking
- Recursion
- Backtracking
- Recursion and Backtracking: Problems
Array
- Introduction to Array
- Array Operations
Two Dimensional Array
- Introduction
- Two Dimensional Array Operations
- Array of Pointer
String
- String Introduction
- Programming String Operations
- Array of String
- Pointers and Strings
- Pattern Matching
- String Matching
Linked List
- Linked List
- Programming Linked List
Circular Linked List
- Circular Linked List Introduction
- Programming Circular Linked List
- Doubly Linked List
- Programming Doubly Linked List
More on Linked List
- Comparison of Array and Linked List
- Recursive Display of Linked List
- Circular Linked problems and other concepts
Matrices
- Matrix Introduction
- Lower Triangular Matrix
- Upper Triangular Matrix
- Symmetric Matrix
- Tri-Diagonal and Tri-band Matrix
- Toeplitz Matrix
- Menu Driven Program for Matrices
Sparse Matrices
- Sparse Matrix
- Operations on Sparse Matrices
Stack
- 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
More on Stack
- Infix to postfix conversion
- Evaluation of Postfix Expression
- Stack: Problem and Solution
Queue
- 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
Tree
- Introduction to Trees
- Strict and Complete Binary Tree comparison
- Tree: Problems and Solutions
Binary Tree
- Binary Tree
- Traversal of a Binary Tree
- Binary Tree: Problems and Solutions
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!