Está en la página 1de 53

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

También podría gustarte