DSAD
DSAD
W CREDIT
UNITS
Course Level: PG 3 4 5
Course Code: CSE 601 Credit Units: 05
Course Objectives:
The objective of this course module is to describe the utilization of formal ADT representations, especially those on lists, sets, trees and
graphs; time and space analysis of recursive and non-recursive algorithms, including graph and sorting algorithms; to learn techniques
for designing algorithms using appropriate data structures, prove correctness and analyze their running times.
Pre-requisites:
Data Structures in C, Analysis and Design of Algorithm, and C Programming Language.
Course Contents/Syllabus:
Weightage (%)
Module I :
Overview of Data Structures:Stacks, Queues, linked lists, doubly linked lists, Applications.Analysis
and Efficiency of algorithms, Asymptotic Notations, Time complexity of an algorithm, Analyzing 22%
Recursive Programs using various strategies. Divide and Conquer Paradigm: Divide and conquer
recurrence equations and their solutions, Review of various sorting techniques and its time complexity.
Module II :
Trees: Basic terminology& its applications, Binary Trees, Binary Search Trees, Red-Black Trees, AVL
Trees and B Trees, spanning trees: Prim’s and Kruskal’s algorithm.Graphs: Terminology,
22%
representations, traversals. Basic graph algorithms:Depth first search and Breadth first Search and its
analysis, single source and all-pair shortest path problem.
70 30 100
Theory Assessment (L&T):
Continuous Assessment/Internal Assessment End Term Examination
Weightage (%) 5 10 7 8 70
Lab
Continuous Assessment/Internal Assessment End Term Examination
Weightage (%) 5 10 10 5 70
Course Lab
Based on Course Lab Credits, student is required to perform following assignments:
Assignment # Assignment
1 Data Structure Concepts
1. Write a function that receives marks scored by a student in 3 subjects and returns the
average and percentage of these marks. Use call by value and call by reference concept to
call this function from main () and print the results in main ().
2. Write a function to compute the distance between two points and use it to develop another
function that will compute the area of the triangle whose vertices are A(x1,y1),B(x2,y2),
and C(x3,y3).Use these functions to develop a function which returns a value 1 if the point
(x,y) lies inside the triangle ABC, otherwise a value 0.
2 Stacks & Queues
1 WAP to implement following operations on stack using link lists.
a Insertion in Stack
b Deletion from Stack
c Display all elements of Stack
2 WAP to implement queue using Link Lists.
a Enqueue in Queue
b Dequeue in Queue
c Display all elements of Queue
3 Stacks & Queues
1. WAP to implement operations on queue using two stacks.
4 Link Lists
1. WAP to implement Circular Link Lists
5 Doubly Link Lists
Read a paragraph containing words from an input file. Then create a doubly-linked list containing
the distinct words read, and their occurrence frequency. This list should have the structure as
depicted in below Figure.
The data structures are defined as follows:
typedefstruct
{
intlength;
NodeT* f irst, *last ;
} ListT;
typedefstruct
{
char *word;
double frequency;
} DataT;
typedefstructnode
{
structnode *prev, *next ;
DataT data;
} NodeT;
The list should be alphabetically ordered. Print the words and their frequencies in alphabetical
ascending and descending order, case insensitive.
6 Sorting Techniques
1. WAP to implement Quick sort
2. WAP to implement Heap sort
7 Sorting Techniques
1. WAP to implement Counting Sort
8 Trees
1. WAP to implement operations on Binary Trees using Link Lists
2. WAP to implement operations on Binary Search Trees using Link Lists
9 Open Ended Experiment
Construct a family tree organized as follows: the root node holds a parents’s name (names must be
unique) as a key; each name is unique. Then, after reading pairs of names from a file of your
choice, output the relations between pairs or persons.
10 Trees
1. WAP to implement operations on RB-Trees
11 Trees
1. WAP to implement operations on AVL Trees
12 Trees
1. WAP to implement operations on B+ Trees.
13 Graphs
1. Implement an algorithm to find the longest cost simple path in a directed graph.
14 Graphs
1. WAP to implement All Pair Shortest Path Algorithm
15 Graphs: Map Coloring
A map of an area of the world contains n countries. Each country is a neighbor of some other
country. You are given m colors to color this map. Find all the possible country colorings using all
the m colors, such a way that any two neighboring countries are colored differently.
16 Dynamic Programming
1. WAP to find Least Common Sub-Sequence
17 Dynamic Programming
The input to the problem is a pair of strings of letters A = a1 . . . am and B = b1 . . . bn. The goal is
to convert A into B as cheaply as possible. The rules are as follows:
Text:
Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest, “Introduction to Algorithms”, MIT press and McGraw Hill, 2001.
UdiManber, “Introduction to Algorithms: A Creative Approach”, Addison Wesley, 1989.
Ellis Horowitz, Sartajsahni, “Fundamentals of Data Structures” Galgotia book source, New Delhi, 1983.
References:
Ellis Horowitz, Sartajsahni, “Fundamentals of Algorithms” Galgotia book source, New Delhi, 1986.
Jean paul Tremblay and paul G. Soresson, “An introduction to Data structures with applications” Mcgraw Hill International editions.
Seymour Libschutxz, “Theory and problems of Data structures”, Mcgraw Hill International editions. (Schaum’s outline series).
Aho, Hopcroft Ullman, “The design and analysis of computer algorithms” Addison Wesley publishing company
Robert L Cruse : "Data Structures and Program Design" (Prentice Hall India ,3rd Edition 1999)
ReemaThareja, “Data Structures using C”, Oxford Higher Education, New Delhi, 2011.