CS25C05 Data Structures using C++ L T P C
3 0 2 4
Course Objective:
• This course aims to provide an understanding of object-oriented programming
principles using C++.
Data Abstraction & Overloading: Overview of C++, Structures, Class Scope and
Accessing Class Members, Reference Variables, Initialization, Constructors,
Destructors, Member Functions and Classes, Friend Function, Dynamic Memory
Allocation, Static Class Members, Container Classes and Integrators, Proxy Classes,
Overloading: Function overloading and Operator Overloading.
Practical:
1. Program to Implement Constructors and Destructors.
2. Program to implement Member Functions, Classes and Friend
Functions. 3. Program to Implement Dynamic Memory Allocation and
Overloading.
Inheritance & Polymorphism: Base Classes and Derived Classes, Protected
Members, Casting Class pointers and Member Functions, Overriding, Public,
Protected and Private Inheritance–Constructors and Destructors in derived Classes,
Implicit Derived, Class Object to Base, Class Object Conversion, Composition Vs.
Inheritance,
Virtual functions, This Pointer, Abstract Base Classes and Concrete Classes, Virtual
Destructors, Dynamic Binding.
Practical:
1. Program to Implement various inheritances.
2. Program to Implement virtual functions and dynamic binding.
3. Implementation of method overriding and operator overloading.
Linear Data Structures: Asymptotic Notations: Big-Oh, Omega and Theta, Best,
Worst and Average case Analysis: Definition and an example, Arrays and its
representations, Stacks and Queues, Linked lists, Linked list based implementation
of Stacks and Queues, Evaluation of Expressions, Linked list based polynomial
addition.
Practical:
1. Program to implement various operations on arrays and linked lists. 2.
Program to implement various operations on stacks and queues using array and
linked list.
3. Program to evaluate the infix expressions by converting into prefix and postfix
expressions
Non-Linear Data Structures: Trees, Binary Trees, Binary tree representation and
traversals, Threaded binary trees, Binary tree representation of trees, Application of
trees: Set representation and Union, Find operations, Graph and its representations,
Graph Traversals, Connected components. Standard template library.
Practical:
1. Program to Implement Binary Tree Traversal and Graph Traversal Algorithm.
2. Program to Implement the Single Source Shortest Path Algorithm and All Pair
Shortest Path Algorithm.
3. Program to find the Minimal Spanning Tree for a Graph.
Searching, Sorting and Complexity Analysis: Insertion sort, Merge sort, Quicksort,
Heapsort, Linear Search, Binary Search.
Practical:
1. Program to Implement Linear Search and Binary Search Algorithms. 2.
Program to Implement Insertion Sort, Merge Sort, Quick Sort and Heap Sort
Algorithms.
Weightage: Continuous Assessment: 50%, End Semester Examinations: 50%
Assessment Methodology: Quiz (5%), Assignments (20%), Flipped Class (5%),
Practical (30%), Internal Examinations (40%)
References
1. Deitel, P. J., & Deitel, H. M. (2005). C++ how to program. Pearson Education.
2. Ellis Horowitz, E., Sahni, S., & Mehta, D. (2007). Fundamentals of data
structures in C++. Universities Press Pvt Ltd.
3. Weiss, M. A. (2007). Data structures and algorithm analysis in C++. Addison
Wesley.
4. Trivedi, B. (2010). Programming with ANSI C++: A step-by-step approach.
Oxford University Press.
5. Goodrich, M. T., Tamassia, R., & Mount, D. (2004). Data structures and
algorithms in C++. Wiley.
E-Resources:
1. [Link]
2. [Link]
CO Description PO PSO1 PSO2 PSO3
CO1 Explain the concepts and applications of
Data Structure in various engineering
applications
CO2 Apply various Data Structure in real time PO1(3)
CO3 Develop suitable and interrupt the data PO1(2)
in real world applications PO3(2)