3.3SEM - IPCC - DS - CS322I2R and Lab Programs
3.3SEM - IPCC - DS - CS322I2R and Lab Programs
● Expert Talk/Webinar/Seminar
● Video Streaming/Self-Study/Simulations
● Peer-to-Peer Activities
● Case Studies
● MOOC/NPTEL Courses
COURSE CONTENTS
MODULE - I
Introduction to Data Structures 8 Hours
Introduction: Data Structures, Classifications (Primitive & Non Primitive), Data structure Operations, Review
of Arrays, Structures. Pointers and Dynamic Memory Allocation Functions. Array Operations: Traversing,
inserting, deleting, searching, and sorting. Multidimensional Arrays, Polynomials and Sparse Matrices.
Strings: Basic Terminology, Storing, Operations and Pattern Matching algorithms.
MODULE - II
Stacks and Queues 8 Hours
Stacks: Definition, Stack Operations’, Arrays Representation of Stacks, Stacks using Dynamic Array’s, Stack
Applications: Polish notation, Infix to postfix conversion, evaluation of postfix expression.
Queues: Definition, Arrays Representation, Queue Operations’, Circular Queues, Circular queues using
Dynamic array’s, Dequeues, Priority Queues, A Mazing Problem. Multiple Stacks and Queues. Programming
Examples
MODULE - III
8 Hours
Linked Lists: Definition, Representation of linked lists in Memory. Linked list operations:
Traversing, Searching, Insertion, and Deletion. Doubly Linked lists, Circular linked lists, and
header linked lists.. Applications of Linked lists – Polynomials, Sparse matrix representation.
MODULE - IV
8 Hours
Trees: Introduction, Binary Trees, Binary Tree Traversal, Additional Binary Tree Operations’, Threaded
Binary Trees, Binary Search Trees: Definition, searching a BST, Insertion, Deletion, Joining and Splitting
Binary Search Trees - Definition, Insertion, Deletion, Traversal, Searching, Application of Trees-Evaluation
of Expression, Programming Examples
MODULE - V
8 Hours
Graphs: Definitions, Terminologies, Matrix and Adjacency List Representation of Graphs, Elementary
Graph operations, Traversal methods: Breadth First Search and Depth First Search. Sorting and Searching:
Insertion Sort, Radix sort, Address Calculation Sort.
Hashing: Hash Table organizations, Hashing Functions, Static and Dynamic Hashing.
COURSE OUTCOMES
Upon completion of this course, the students will be able to:
Bloom’s
CO
Course Outcome Description Taxonomy
No.
Level
CO1
CO2
CO3
CO4
CO5
LABORATORY COMPONENTS
Bloom’s
Exp. CO
Experiment Description Taxonomy
No. No.
Level
Design, Develop and Implement a menu driven Program in C for the following array
operations.
e. Exit. Support the program with functions for each of the above operations
Design, Develop and Implement a menu driven Program in C for the following
operations on STACK of Integers (Array Implementation of Stack with maximum size
MAX)
e. Display the status of Stack f. Exit Support the program with appropriate functions for
each of the above operations
Design, Develop and Implement a menu driven Program in C for the following
operations on, Circular QUEUE of Characters (Array Implementation of Queue with
maximum size MAX)
e. Exit. Support the program with appropriate functions for each of the above operations
Design, Develop and Implement a menu driven Program in C for the following
operations on Singly Linked List (SLL) of Student Data with the fields: USN, Name,
Programme, Sem, PhNo
4. b. Display the status of SLL and count the number of nodes in it.
e. Exit
Design, Develop and Implement a Program in C for the following operationson Singly
Circular Linked List (SCLL) with header nodes
b. Find the sum of two polynomials POLY1(x,y,z) and POLY2(x,y,z) and store the
result in POLYSUM(x,y,z) Support the program with appropriate functions for each of
the above operations
6. Design, Develop and Implement a Program in C for the following operationson Singly
Circular Linked List (SCLL) with header nodes
b. Find the sum of two polynomials POLY1(x,y,z) and POLY2(x,y,z) and store the
result in POLYSUM(x,y,z) Support the program with appropriate functions for each of
the above operations
Design, Develop and Implement a Program in C for the following operations on
Graph(G) of Cities
b. Print all the nodes reachable from a given starting node in a digraph using DFS/BFS
method
Given a File of N employee records with a set K of Keys (4-digit) which uniquely
determine the records in file F. Assume that file F is maintained in memory by a Hash
Table (HT) of m memory locations with L as the set of memory addresses (2-digit) of
8. locations in HT. Let the keys in K and addresses in L are Integers. Design and develop a
Program in C that uses Hash function H: K →L as H(K)=K mod m (remainder
method), and implement hashing technique to map a given key K to the address space
L. Resolve the collision (if any) using linear probing
CO-PO-PSO MAPPING
Programme
CO Programme Outcomes (PO) Specific
No. Outcome (PSO)
1 2 3 4 5 6 7 8 9 10 11 12 1 2
CO1
CO2
CO3
CO4
CO5
3: Substantial (High) 2: Moderate (Medium) 1: Poor (Low)
ASSESSMENT STRATEGY
Assessment will be both CIA and SEE. Students learning will be assessed using Direct and Indirect methods:
Sl. No. Assessment Description Weightage (%) Max. Marks
1 Continuous Internal Assessment (CIA) 100 % 50
Continuous Internal Evaluation (CIE) 60 % 30
Practical Session (Laboratory Component) 40 % 20
2 Semester End Examination (SEE) 100 % 50
ASSESSMENT DETAILS
Continuous Internal Assessment (CIA) (50%) Semester End Exam (SEE) (50%)
Practical Sessions (40%)
Continuous Internal Evaluation (CIE) (60%)
I II III
Syllabus Coverage Syllabus Coverage Syllabus Coverage
40% 30% 30% 100% 100%
MI MI MI
MII MII MII MII
MIII MIII MIII
MIV MIV MIV
MV MV MV
NOTE:
● Assessment will be both CIA and SEE.
● The Theory component of the IPCC shall be for both CIA and SEE respectively.
● The questions from the practical sessions shall be included in Theory SEE.
Note: For Examinations (both CIE and SEE), the question papers shall contain the questions mapped to the
appropriate Bloom’s Level. Any COs mapped with higher cognitive Bloom’s Level may also be assessed through the
assignments.
SEE QUESTION PAPER PATTERN:
1. The question paper will have TEN full questions from FIVE Modules
2. There will be 2 full questions from each module. Every question will carry a maximum of 20 marks.
3. Each full question may have a maximum of four sub-questions covering all the topics under a module.
4. The students will have to answer FIVE full questions, selecting one full question from each module.
Text Books:
1. John E. Hopcroft, Rajeev Motwani, Jeffrey D.Ullman: Introduction to Automata Theory, Languages and
Computation, 3rd Edition, Pearson Education, 2013. (Chapters: 1, 2, 3, 4, 5, 6, 7)
1. K L P Mishra, N Chandrasekaran, 3rd Edition, Theory of Computer Science, PhI, 2012. (Chapters: 9, 10, 12)
Reference Books:
1. Fundamentals of Data Structures in C, Ellis Horowitz and Sartaj Sahni, Universities Press, 2nd Ed, 2014.
2. Data Structures Schaum's Outlines, Seymour Lipschutz, McGraw Hill, Revised 1st Ed, 2014
3. Data Structures: A Pseudo-code approach with C, Gilberg & Forouzan, Cengage Learning, 2nd Ed, 2014
4. Data Structures using C, Reema Thareja, Oxford press, 3rd Ed, 2012
5. An Introduction to Data Structures with Applications, Jean-Paul Tremblay & Paul G. Sorenson, McGraw Hill,
2nd Ed, 2013
void create();
void display();
void insert();
void delete();
void main()
{
int choice;
while(1)
{
printf("\n\n~~~~MENU~~~~");
printf("\n=>1. Create an array of N integers");
printf("\n=>2. Display of array elements");
printf("\n=>3. Insert ELEM at a given POS");
printf("\n=>4. Delete an element at a given POS");
printf("\n=>5. Exit");
printf("\nEnter your choice: ");
scanf("%d", &choice);
switch(choice)
{
case 1: create();
break;
case 2: display();
break;
case 3: insert();
break;
case 4: delete();
break;
case 5: exit(1);
break;
default: printf("\nPlease enter a valid choice:");
}
}
}
void create()
{
int i;
printf("\nEnter the number of elements: ");
scanf("%d", &n);
printf("\nEnter the elements: ");
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
}
void display()
{
int i;
if(n == 0)
{
printf("\nNo elements to display");
return;
}
printf("\nArray elements are: ");
for(i=0; i<n;i++)
printf("%d\t ", a[i]);
}
void insert()
{
int i;
if(n == MAX)
{
printf("\nArray is full. Insertion is not possible");
return;
}
do
{
printf("\nEnter a valid position where element to be inserted: ");
scanf("%d", &pos);
}while(pos > n);
if(n == 0)
{
printf("\nArray is empty and no elements to delete");
return;
}
do
{
printf("\nEnter a valid position from where element to be deleted: ");
scanf("%d", &pos);
}while(pos>=n);
elem = a[pos];
Output:
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 1
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 2
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 3
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 3
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 3
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 4
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 4
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 4
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 4
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 4
No elements to display
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 4
~~~~MENU~~~~
=>1. Create an array of N integers
=>2. Display of array elements
=>3. Insert ELEM at a given POS
=>4. Delete an element at a given POS
=>5. Exit
Enter your choice: 5