Fall 2021 Data Structures BS (CS) - III
Fall 2021 Data Structures BS (CS) - III
General Information
Course Objectives
The objective of this course is to make students familiar with the concepts of the way data is stored
inside the computer and its manipulation using different algorithms. Students will learn different data
structures such as an array, stack, queue, link list, trees, graphs, sorting algorithm, etc. Since
Programming fundamentals is the pre-requisite of this course, therefore, in class we would be using
java language to implement all the data structures. However, students may use any programming
language
Catalog Description
CSC-222
Course Content
Week Chapters
No 1. Topics
1 • Introduction to the course
• Elementary data structures
• Arrays
o Review of single-dimension arrays
o Concept and implementation of 2D
arrays
▪ Manipulating matrices using
arrays
o Basic concepts of Multi-dimensional
arrays
• What is the data structure?
o Need for data structures
o What are the limitations of Arrays?
2 • Linked lists
o Arrays vs. Linked list
• Types of linked list
o Singly-linked list
o Circular singly linked list
o Doubly linked list
o Circular doubly linked list
• Defining the Node class
• Linked Lists Functions
Printing linked list in reverse order using recursion
3-4 • Applying dictionary operations on linked lists
o Traversing a linked list
o Inserting new node
▪ at the head
▪ at any location
o Searching a node
o Removing a node
▪ from the head
▪ from anywhere
• Clearing a linked list
5 • Introduction to Queues
• The Queue data structure
• Application of queues
• Array Representation of Queue
o Algorithm for the Addition of an Element
to the Queue
o Algorithm for Deletion of an Element to
the Queue
• Dynamic Representation of Queues Using
Linked Lists
• Circular Queue-Array Representation
6 • The FIFO structure
• Queue operations
• Extended queue operations
• Dictionary operations on queues
• The priority queues
• The LIFO structure
• Introduction to the stack data structure
• Applications of stack
• Stack operations
• Stack specifications
o List and arrays
o Stacks
o Reversing a list
• Stack implementation
o Using arrays
o Using linked list
• Methods of stack
o Push
o Pop
• Push down stack
First Mid Term Examination
7 • What is algorithm?
• Complexity of algorithm
o Time complexity
o Space complexity
• Analysis of algorithms
• Big O Notation
o Best-case analysis
o Worst-case analysis
• Average-case analysis
8-9 • Trees Introduction
• Tree terminology
• Tree Traversal
• Concept of Binary Trees
• Why use binary trees
• Basic Operations
• Complete Binary Tree
• Priority Queues: Heaps
• Max-Heap
10-11 • Concept of Binary Search trees and how they
work
• Finding a node in a binary search tree
• Inserting a node
• Recursively traversing the tree in In order,
Pre and Postorder
• Applications of tree traversing in sorting
12 • Deleting a node in a Binary Tree with all
three cases
• The efficiency of Binary Trees
• Handling duplicate nodes in BST
• Applications of BST
• Time complexity
Second Mid Term Examination
13 AVL Trees
• Balance Factor
• Cases(I,II,III, IV)
14 • Simple sorting
o Understanding why sorting is
important
o Bubble sort
o Selection sort
o Insertion sort
o Merge Sort
15 • Hashing
• Applications of Hashing
• Direct Address
• Chain based Scheme
• Hash Tables
Introduction to Graph data structure
• BFS
16 • DFS
• Spanning Tree
Text Book
Reference Material
1. C++ Plus Data Structures, 3rd edition, Nell Dale.
2. Think Data Structures: Algorithms and Information Retrieval in Java by Allen B. Downey
CLO-SO Map
SO IDs
CLO ID GA1 GA2 GA3 GA4 GA5 GA6 GA7 GA8 GA9 GA10 GA11 GA12
CLO 1 1 0 0 0 0 0 0 0 0 0 0
CLO 2 0 0 1 0 0 0 0 0 0 0 1
CLO 3 0 1 0 1 0 0 0 0 0 0 0
Approvals
Prepared By Syed Muzamil Hussain Shah
Approved By Not Specified
Last Update 09/10/2021