Course Content


Introduction to C

  • Functions
  • Pointers
  • Declaring Pointer Variables
  • Pointer Expressions and Pointer Arithmetic
  • Null Pointers
  • Pointer to Pointers

Introduction to Data Structures and Algorithms

  • Elementary Data Structure Organization
  • Classification of Data Structures
  • Operations on Data Structures
  • Abstract Data Type
  • Time and Space Complexity
  • Worst-case, Average-case, Best-case
  • Big O Notation
  • mega Notation (Ω)
  • Theta Notation (Q)

Arrays

  • Calculating the Address of Array Elements
  • Operations on Arrays
  • Passing Arrays to Functions
  • Pointers and Arrays
  • Arrays of Pointers
  • Two-dimensional Arrays
  • Passing Two-dimensional Arrays to Functions
  • Pointers and Three-dimensional Arrays
  • Sparse Matrices

Structures and Unions

  • Structure Declaration
  • Typedef Declarations
  • Initialization of Structures
  • Accessing the Members of a Structure
  • Copying and Comparing Structures
  • Nested Structures
  • Arrays of Structures
  • Structures and Functions
  • Self-referential Structures
  • Declaring a Union
  • Arrays of Union Variables
  • Unions Inside Structures

Linked Lists

  • Linked Lists versus Arrays
  • Memory Allocation and De-allocation for a Linked List
  • Singly Linked Lists
  • Traversing a Linked List
  • Searching for a Value in a Linked List
  • Inserting a New Node in a Linked List
  • Deleting a Node from a Linked List
  • Circular Linked Lists
  • Doubly Linked Lists
  • Circular Doubly Linked Lists
  • Header Linked Lists
  • Applications of Linked Lists
  • Polynomial Representation

Stack

  • Introduction to Stacks
  • Array Representation of Stacks
  • Operations on a Stack
  • Push Operation
  • Pop Operation
  • Peek Operation
  • Linked Representation of Stacks
  • Operations on a Linked Stack
  • Push Operation
  • Pop Operation
  • Multiple Stacks
  • Applications of Stacks
  • Reversing a List
  • Implementing Parentheses Checker
  • valuation of Arithmetic Expressions
  • Recursion

Queues

  • Introduction to Queues
  • Array Representation of Queues
  • Linked Representation of Queues
  • Types of Queues
  • Circular Queues
  • Deques
  • Priority Queues
  • Multiple Queues
  • Applications of Queues

Trees

  • Introduction
  • Basic Terminology
  • Types of Trees
  • General Trees
  • Forests
  • Binary Trees
  • Binary Search Trees
  • Expression Trees
  • Tournament Trees
  • Creating a Binary Tree from a General Tree
  • Traversing a Binary Tree
  • Pre-order Traversal
  • In-order Traversal
  • Post-order Traversal
  • Level-order Traversal
  • Constructing a Binary Tree from Traversal Results
  • Huffman’s Tree
  • Applications of Trees

Efficient Binary Trees

  • Binary Search Trees
  • Operations on Binary Search Trees
  • Searching for a Node in a Binary Search Tree
  • Inserting a New Node in a Binary Search Tree
  • Deleting a Node from a Binary Search Tree
  • Determining the Height of a Binary Search Tree
  • Determining the Number of Nodes
  • Finding the Mirror Image of a Binary Search Tree
  • Finding the Smallest Node in a Binary Search Tree
  • Finding the Largest Node in a Binary Search Tree
  • Threaded Binary Trees
  • Traversing a Threaded Binary Tree
  • AVL Trees
  • Operations on AVL Trees
  • Searching for a Node in an AVL Tree
  • Red-Black Trees
  • Properties of Red-Black Trees
  • Operations on Red-Black Trees
  • Applications of Red-Black Trees
  • Splay Trees
  • Operations on Splay Trees
  • Advantages and Disadvantages of Splay Trees

Multi-way Search Trees

  • Introduction to M-Way Search Trees
  • B Trees
  • Searching for an Element in a B Tree
  • Inserting a New Element in a B Tree
  • Deleting an Element from a B Tree
  • Applications of B Trees
  • B+ Trees
  • Inserting a New Element in a B+ Tree
  • Deleting an Element from a B+ Tree
  • 2-3 Trees
  • Searching for an Element in a 2-3 Tree
  • Inserting a New Element in a 2-3 Tree
  • Deleting an Element from a 2-3 Tree

Heap

  • Binary Heaps
  • Inserting a New Element in a Binary Heap
  • Deleting an Element from a Binary Heap
  • Applications of Binary Heaps

Graph

  • Introduction
  • Graph Terminology
  • Directed Graphs
  • Terminology of a Directed Graph
  • Transitive Closure of a Directed Graph
  • Bi-connected Components
  • Representation of Graphs
  • Adjacency Matrix Representation
  • Adjacency List Representation
  • Adjacency Multi-List Representation
  • Graph Traversal Algorithms
  • Breadth-First Search Algorithm
  • Depth-first Search Algorithm
  • Topological Sorting
  • Shortest Path Algorithms
  • Minimum Spanning Trees
  • Prim’s Algorithm
  • Kruskal’s Algorithm
  • Dijkstra’s Algorithm
  • Warshall’s Algorithm
  • Modified Warshall’s Algorithm
  • Applications of Graphs
  • Searching and Sorting
    • Introduction to Searching
    • Linear Search
    • Binary Search
    • Interpolation Search
    • Jump Search
    • Introduction to Sorting
    • Sorting on Multiple Keys
    • Practical Considerations for Internal Sorting
    • Bubble Sort
    • Insertion Sort
    • Selection Sort
    • Merge Sort
    • Quick Sort
    • Radix Sort
    • Heap Sort
    • Shell Sort
    • Tree Sort
    • Comparison of Sorting Algorithms
    • External Sorting

    Hashing and Collision

    • Introduction
    • Hash Tables
    • Hash Functions
    • Different Hash Functions
    • Division Method
    • Multiplication Method
    • Mid-Square Method
    • Folding Method
    • Collisions
    • Collision Resolution by Open Addressing
    • Collision Resolution By Chaining
    • Pros and Cons of Hashing
    • Applications of Hashing
  • Send Quick Enquiry

    Course Details

    Hours: 50 Hours

    Intermediate

    Course Fee: 3500

    Course Features

    2 Free Demo Classes

    Free Course Material

    Completion Certificate

    Lifetime Membership

    What Student Says