Advanced Data Structure and
C++ programming
Amresh Nikam
Syllabus
Syllabus
Syllabus
Syllabus
Syllabus
Chapter 1 Session 1
Basics of C++
A Brief History of C++
Standard C++ A Programming Language and a Library
C++ versus C
The Organization of a C++ Program
C++ Identifiers and Keywords
Your First C++ Program
Variables
Constants
Chapter 1 Session 2
C++ Expression
Expressions and Assignments
Operators That Compute
Bitwise Operators
Compound Assignment and Comma Operators
Precedence and Associativity
Initializers
Type Conversion
Chapter 2 Session 3
C++ Expression
Operators That Make Decisions
Console Input and Output
Loops in C++
Chapter 2 Session 4
Array & Pointers in C++
1D, 2D, 3D Array
Accessing elements from the array
Memory Management Operators
Constant to a pointer
Pointer to a constant
Reference Variables
Chapter 3 Session 5
Functions In C++
Function Declaration, Definition and Calling
Returning From Functions
Passing Arguments to Function Parameters
Call by Value
Call by Address
Chapter 3 Session 6
Functions In C++
Call by Reference,
Return by Reference
Default Arguments
Const Arguments
Overloaded Functions
Chapter 4 Session 7
Classes & Objects
C++ Class Definitions
Access Control in Classes
Defining Class and Declaring Objects
Accessing Data Members of Class
Accessing Public Data Members
Accessing Private Data Members
Accessing Protected Data Members
Member Functions in Classes
Chapter 4 Session 8
Classes & Objects
Types of Member Functions
Simple functions
Static functions
Const functions
Inline functions
Friend functions
Chapter 4 Session 9
Classes & Objects
Inline Functions in C++
Drawbacks of Macro
Problem with spacing
Complex Argument Problem
No way to access Private Members of Class
Limitations of Inline Functions
Function Overloading
Chapter 4 Session 10
Classes & Objects
Constructors
Types of Constructors
Default Constructor
Parameterized Constructor
Copy Constructor
Constructor Overloading
Destructors
Chapter 4 Session 11
Classes & Objects
Namespace
Creating a Namespace
Rules to create Namespace
Static Keyword
Static variable in functions
Static Class Objects
Static member Variable in class
Static Methods in class
Chapter 4 Session 12
Classes & Objects
Const Keyword
Constant Variables
Pointers with Const
Const Function Arguments and Return types
Const class Data members
Const class Object
Mutable Keyword
Chapter 4 Session 13
Classes & Objects
Pointers to class members
Pointer to Data Members of class
Pointer to Member Functions
Chapter 5 Session 14
Operator Overloading
Implementing Operator Overloading
Member Function
Non-Member Function
Friend Function
Restrictions on Operator Overloading
Chapter 5 Session 15
Operator Overloading
Overloading Arithmetic Operator
Overloading I/O operator
Overloading Relational operator
Copy constructor Vs. Assignment operator
Chapter 5 Session 16
Operator Overloading
Manipulating of String Using Operators
Concatenation
Repetition of string
Remove Sub String
Chapter 6 Session 17
Inheritance & Polymorphism
Overview of Inheritance
Purpose of Inheritance
Basic Syntax of Inheritance
Inheritance Visibility Mode
Public Inheritance
Private Inheritance
Protected Inheritance
Chapter 6 Session 18
Inheritance & Polymorphism
Types of Inheritance
Single Inheritance
Multiple Inheritance
Hierarchical Inheritance
Multilevel Inheritance
Hybrid Inheritance (also known as Virtual Inheritance)
Chapter 6 Session 19
Inheritance & Polymorphism
Order of Constructor Call
Upcasting in C++
Functions that are never Inherited
Inheritance and Static Functions
Hybrid Inheritance and Virtual Class
Hybrid Inheritance and Constructor call
Chapter 6 Session 20
Inheritance & Polymorphism
Function Overriding
Requirements for Overriding
Function Call Binding with class Objects
Function Call Binding using Base class Pointer
Virtual Functions
Late Binding
Problem without Virtual Keyword
Using Virtual Keyword
Using Virtual Keyword and Accessing Private Method of Derived
class
Mechanism of Late Binding
Chapter 6 Session 21
Inheritance & Polymorphism
Abstract Class
Characteristics of Abstract Class
Pure Virtual Functions
Why can't we create Object of Abstract Class ?
Pure Virtual definitions
Virtual Destructors
Upcasting without Virtual Destructor
Upcasting with Virtual Destructor
Pure Virtual Destructors
Chapter 7 Session 22
Input and output (I/O) streams
Standard streams in C++
Input with istream
Output with ostream and ios
Stream classes for strings
Stream states and input validation
Chapter 7 Session 23
Input and output (I/O) streams
Basic file I/O
File output
File input
Buffered output
File modes
Explicitly opening files using open()
Chapter 7 Session 24
Input and output (I/O) streams
Random file I/O
Random file access with seekg() and seekp()
Reading and writing a file at the same time using fstream
Chapter 8 Session 25
Exception handling
The need for exceptions
Basic exception handling
Exceptions, functions, and stack unwinding
Uncaught exceptions, catch-all handlers, and exception specifiers
Chapter 8 Session 26
Exception handling
Exceptions, classes, and inheritance
Rethrowing exceptions
Function try blocks
Exception dangers and downsides
Chapter 9 Session 27
Single linked lists
Implementation of single linked list
Insertion of new node
By value (Before/After)
By order
By position
Deletion of node
By value
By position
Chapter 9 Session 28
Circular Single linked lists
Implementation of circular single linked list
Insertion of new node
By value (Before/After)
By order
By position
Deletion of node
By value
By position
Chapter 9 Session 29
Doubly linked lists
Implementation of doubly linked list
Insertion of new node
By value (Before/After)
By order
By position
Deletion of node
By value
By position
Chapter 9 Session 30
Doubly Circular Single linked lists
Implementation of Doubly circular single linked list
Insertion of new node
By value (Before/After)
By order
By position
Deletion of node
By value
By position
Chapter 9 Session 31
Stack
Implementation of stack using self referential structure
Operation on stack
Push
Pop
Chapter 9 Session 32
Queue
Implementation of queue using self referential structure
Operation on queue
insert
delete
Chapter 9 Session 33
Circular Queue
Implementation of circular queue
Operation on circular queue
insert
delete
Chapter 10 Session 34
Priority Queue
Implementation of priority queue
Operation on priority queue
insert
delete
Chapter 11 Session 35
Tree
Tree Terminology
Root Edge Parent Child Siblings Leaf
Internal Nodes Degree Level Height Depth
Path Strictly Binary Tree Complete Binary Tree
Almost Complete Binary Tree
Binary Tree
Binary Tree Representation using array
Binary Tree Representation using self referential structure
Chapter 11 Session 36
Binary Search Tree (BST)
Creating a BST
Making Mirror
Display Level wise
Find the height
Chapter 11 Session 37
Binary Search Tree (BST)
Traversal
Recursive preorder Traversal
Non recursive preorder Traversal
Chapter 11 Session 38
Binary Search Tree (BST)
Traversal
Recursive inorder Traversal
Non recursive inorder Traversal
Chapter 11 Session 39
Binary Search Tree (BST)
Traversal
Recursive postorder Traversal
Non recursive postorder Traversal
Chapter 12 Session 40
Advance Tree
Threaded Binary Tree
Right in Threaded Binary Tree
Left in Threaded Binary Tree
Traversal of Threaded Binary Tree
Chapter 12 Session 41
AVL tree
Concept of AVL tree
Rotation
RR
LL
RL
LR
Exercise on AVL tree
Chapter 12 Session 42
AVL tree
Implementation of AVL tree
Traversal
Chapter 12 Session 43
B tree
Concept of B tree
Properties of B tree
Insertion of node in B tree
Deletion of node from B tree
Chapter 12 Session 44
B tree
Exercise on B tree
Concept of B+ and B* tree
Difference between B, B+ and B* tree
Chapter 13 Session 45
Graph
Graph Terminology
Implementation of Graph
Adjacency Matrix
Linked list
Mixed
Chapter 13 Session 46
Graph Traversals
Depth First Search
Breadth First Search
Chapter 13 Session 47
Application of Graph
Shortest Path
Topological Sort