Main objective of this course is to enable students to understand and implement common data structures and algorithms to manipulate those data structures using C++ techniques. Emphasis will be on a lot of practice in writing codes to implement all the major data structures.


CLO: 1. Understand the design of fundamental data structures as well as algorithms that operate on them. (C2-Understanding)
CLO: 2. Get rigorous hands-on experience on implementing different data structures in a programming language. (C3-Applying)
CLO: 3. Summarize data structures according to their typical uses, strengths, and weaknesses for designing optimized computer-based systems. (C4-Analyzing)


  1. Introduction to the course and course objectives
  2. Linear data structures
    • Arrays
    • Stack, Queues
    • Implementation using arrays
    • Implementation using Linked List
  3. Non Linear Data Structures
    • Recursion: Introduction
    • Trees by using linked lists
    • Binary trees, Binary Search Trees
    • BSTs Recursive and Iterative Traversals
    • AVL trees
    • Graphs by adjacency lists and matrices
  4. Heaps
  5. Some searching and sorting algorithms
  6. Project Presentations