The course teaches the student efficient storage mechanisms of data for essay access. To improve the logic ability and implement various basic and advance data structures and algorithm analysis. To develop an application using data structure and algorithm and analysis. At the end of the course, student will be able to choose data structure as applied to specific problem definition. Student will be able to use linear and non linear data structures like stacks, queues, linked list etc.

PREREQUISITE: To have better understanding, students should have sound knowledge of C programming.


No batch is available

What you'll learn?


  • Introduction
  • Mathematics Review
  • Exponenets
  • Logarithms
  • Series
  • Modular Arithmetic
  • The P Word
  • A Brief Introduction to Recursion
  • Recursion and Induction

Algorithm Analysis

  • Mathematical background
  • Model
  • What to Analyze
  • Running Time Calculations
  • General Rules
  • Solutions for the Maximum Subsequence Sum Problem
  • Logarithms in the Running Time
  • Euclid's ALgorithm
  • Exponentiation
  • Checking Your Analysis
  • A Grain of Salt

Stacks, Queues and List

  • Stacks
  • Queues
  • Linked Lists
  • Double-ended Queues
  • Abstract Data Type (ADT)
  • The List ADT
  • Simple Array Implementation of Lists
  • Linked Lists
  • Programming Details
  • Comman Errors
  • Doubly Linked Lists
  • Circularly Linked Lists
  • Examples
  • Cursor Implementation of Linked Lists
  • The Stack ADT
  • Implementation of Stacks
  • Applications
  • The Queue ADT
  • Array Implemantation of Queues
  • Applications of Queues

Trees and Search Trees

  • Tree
  • Implementation of Trees
  • Tree Traversals with an Application
  • Binary Trees
  • Expression Trees
  • The Search Tree ADT - Binary Search Trees
  • AVL Trees
  • Single Rotatio
  • Double Rotation
  • Red-Black Trees
  • External searching in B-Trees
  • Tree Traversals
  • B-Trees

Priority Queues

  • The priority queues Abstract data Type
  • Implementing a Priority Queues with a List
  • Heaps
  • Adaptable priority queues.

Sorting Sets, and Selection

  • Insertion Sort
  • Shellsort
  • Heapsort
  • Quicksort
  • Bucket Sort
  • Merge Sort and Radix Sort
  • A Lower Bound on comparison-based Sorting and radix Sort
  • The complexity of some sorting algorithms
  • Comparison of Sorting ALgorithms
  • The Set ADT and union / file Structures


  • The graph Abstract Data Type
  • Data Structures for Graphs
  • Graph Traversals Directed Graphs
  • Weighted Graphs
  • Shortest-Paths
  • Minimum spanning Trees
  • Applicatios of DFS and BSF
  • Shortest-Path Algorithms
  • Dijkstra's Algorithm
  • Graphs with negative Edge Costs
  • Acyclic Graphs
  • Network Flow Problems
  • Minimum Spanning Tree