Coursepack Data Structures Using JAVA-R1UC303B
Coursepack Data Structures Using JAVA-R1UC303B
FRAMEWORK
The Course Pack is a comprehensive and complete pedagogical guideline document that describes the
components of instruction delivery by a faculty member. It consists of the scheme of the course,
Course Overview, Course Objectives, Prerequisite course, Program-specific Outcomes (PSOs),
Course outcomes (COs), Bloom’s taxonomy (Knowledge Levels), Types of Courses, Course
articulation matrix, Course assessment patterns, Course content, Lesson Plan, Bibliography, Problem-
based learning/case-studies/clinical, and Student-Centered learning (self- learning towards life-long-
learning). It not only provides a uniform design of Course delivery across the University but also
ensures freedom and flexibility to introduce innovations in learning and teaching and create vivid
kinds of assessment tools (alternate assessment tools) by a faculty member.
The course pack is developed by the faculty member teaching a course. If more than one faculty
teaches the same course, all the faculty members teaching the course shall be formed as a cluster,
and a senior faculty member (Course-lead) lead the Course delivery design in a team effort. The
Course Pack provides ample scope and opportunity to bring innovations in teaching pedagogies in
a school/department.
Hence, the Course pack is a comprehensive learning-teaching strategy framework to be followed by
all the faculty members in schools/departments in the university. It is not only a tool for measuring
the learning of a class but also analyses the achievement levels (learning outcomes of the course) of
all the students in a class in a continuous manner.
Practical
Tutorial
Tutorial
0 0
Theory
delivery
study
Self-
SEE
CIE
Practical 1 2
Self-study 0 7
Total 4 12 45 0 30 105 50% 50%
Course Lead Dr. Ashok Kumar Yadav Course Dr. Mili Dhar
Coordinator
Names Course Theory Practical
Instructors Abhishek Kumar Pandey Abhishek Kumar Pandey
Albert Mundu Albert Mundu
Ambika Gupta Ambika Gupta
Anurag maurya Anurag maurya
Ashok Kumar Yadav Ashok Kumar Yadav
Baldivya Mitra Baldivya Mitra
Dileep Kumar Kushwaha Dileep Kumar Kushwaha
Gaurav Agarwal Gaurav Agarwal
Greeshma G.S. Greeshma G.S.
Jyoti Yaduwanshi Jyoti Yaduwanshi
Mandeep Mandeep
Mili Dhar Mili Dhar
Mithilesh Kumar Yadav Mithilesh Kumar Yadav
Munish Khanna Munish Khanna
Neha Singh Neha Singh
Nripendra Dwivedi Nripendra Dwivedi
Pradeep Chauhan Pradeep Chauhan
Pravin Kumar Pravin Kumar
R. Sathiya Priya R. Sathiya Priya
Radha Rani Radha Rani
Rahul Kumar Rahul Kumar
Sachin Jain Sachin Jain
Sachin Kumar Tyagi Sachin Kumar Tyagi
Sayooj Devadas K Sayooj Devadas K
Shachi Mall Shachi Mall
Shalaka Tyagi Shalaka Tyagi
Sunil Kumar (31672) Sunil Kumar (31672)
Tushar Mehrotra Tushar Mehrotra
Vartika Mishra Vartika Mishra
Vikas Arya Vikas Arya
COURSE OVERVIEW
Data structures are one of the foundation subjects for the computer science program. This course enables the
students to understand and apply the concepts of Linear Data Structure and Non-linear Data Structure
approaches in different scenarios of information processing and storing and organizing data in a computer's
memory so that these data can be used efficiently later. It includes identifying the issue in that particular
scenario required to deal with the data structures approaches, considering several techniques to address it, and
selecting the best data structure to store, organize, and efficiently use the stored data. In this course, Data
structures include- Array, lists, stacks, queues, trees, and graphs. The Java programming language will be used
to demonstrate the concepts discussed in the lecture, and programming problems must be completed in Java.
PREREQUISITE COURSE
Java Programming
This course will introduce students to searching and sorting as well as data structures like stack, queue, and binary tree.
Students will write many programs around these topics during this course
After the completion of the course, the student will be able to:
Develop programs for functions like traversal, searching, and sorting over Arrays and Linked
CO1 Lists using iterative and recursive techniques.
Convert iterative programs using Arrays and Linked Lists into equivalent Recursive versions
CO2 and vice versa.
Implement Stack, Queue, and Binary Tree data structures in Java using Array and Linked
CO3 Structures.
Develop Java programs to solve computing problems using multiple data structures (Stack,
CO4 Queue, and Binary Tree).
PSO2: Demonstrate Engineering Practice learned through industry internship and research project to solve live
problems in various domains
COURSE ARTICULATIONMATRIX
PSO1
PSO2
PO10
PO11
PO12
PO1
PO2
PO3
PO4
PO5
PO6
PO7
PO8
PO9
COs#/POs
CO1 1 1 1 - - - - - - - - - - -
CO2 1 - - - - - - - - - - - - -
1 - - - - - - - - - - - - -
CO3
CO4 2 2 2 - 2 - - - 1 - - 1 - -
COURSE CONTENT
Content
THEORY:
Introduction: Basic Terminology, Types and application of Data Structures,
Algorithm, Efficiency of an algorithm, Time-space trade-off and complexity,
asymptotic notation.
Searching & Sorting: Linear search, Binary Search, Indexed Sequential search,
Hashing, Insertion Sort, Bubble sort, Selection sort, Quick Sort, Merge Sort.
Linked lists: Introduction, Singly Linked Lists, Doubly Linked List, Circularly
Linked List, Operations on a Linked List. Insertion, Deletion, Traversal,
Reversing, Application of Linked List: Polynomial Representation, Addition and
Multiplication, Generalized Linked List.
Stack: Introduction, Abstract Data Type, Primitive Stack operations: Push &
Pop, Array and Linked List Implementation of Stack, Application of Stack:
Prefix and Postfix Expressions, Evaluation of postfix expression.
Trees: Binary Tree and Its array and linked list representation, Strict Binary Tree,
Complete Binary Tree, Tree Traversal algorithms: In-order, Pre-order, and Post-
order, level order, Constructing Binary Tree from given Tree Traversal, BST
Operation: Searching, Insertion, Deletion, Threaded Binary Trees, Traversals in
Threaded Binary Trees, Heaps, Heap Sort.
* Passing criteria – 30% of marks to be secured in the lab exam conducted by two examiners
(one internal + one external).
Text Book
1. Aaron M. Tenenbaum, Yedidyah Langsam and Moshe J. Augenstein “Data Structures”.
2. Sahni Sartaj, “Data structures, algorithms, and applications in Java”, McGraw-Hill
Reference Books
1. Michael T. Goodrich; Roberto Tamassia; Michael H. Goldwasser; Subhasish Banerjee “Data
Structures and Algorithms in Java”, Wiley.
2. Jean Paul Trembley and Paul G. Sorenson, “An Introduction to Data Structures with applications”, Mc
Graw Hill
3. James Cutajar “Beginning Java Data Structures and Algorithms”, O’Reilly.
4. John Hubbard "Data Structures with Java" Schaum's Outline Series.
5. Narasimha Karumanchi "Data Structures and Algorithms Made Easy in Java" Career Monk
Webliography
1. https://cse.iitkgp.ac.in/~dsamanta/javads/index.htm
2. https://www.geeksforgeeks.org/data-structures/
3. https://www.javatpoint.com/data-structures-in-java
4. https://www.programiz.com/dsa
5. https://www.w3resource.com/
6. https://www.javaguides.net/p/data-structures-and-algorithms-in-java.html
SWAYAM/NPTEL/MOOCs Certification
1. Data Structure and Algorithms using Java
URL: https://archive.nptel.ac.in/courses/106/105/106105225/
2. Data Structures and Algorithms In Java (DSA)
URL: https://www.udemy.com/course/data-structures-and-algorithms-in- java/
COURSEPACK
FRAMEWORK
PRACTICE PROBLEMS
1. Write a program to find the number of elements in the largest increasing sequence in an array.
2. Write a program to remove duplicates from an array.
3. Write a Program to find the transpose of a matrix.
4. Write a program to find the second smallest element in a linked list.
5. Write a program to check whether doubly linked list elements make palindrome or not.
6. Given an array, arr[2………11][5………20] with base value 200, and the size of each element is 2
Byte in memory. Find the address of arr[7][11] with the help of row- major order.
7. Given an array, arr[2:11, -3:4, 7:18] with a base value of 300 and the size of each element is 3 Bytes in
memory find the address of element arr[4][-2][12] with the help of row-major order?
8. Write a program to calculate the average value of array elements.
9. Write a program to find the Middle Element of a Linked List in a single traversal.
10. A circular queue has a size of 5 and has 3 elements 10,20 and 40 where F=2 and R=4. After inserting
50 and 60, what is the value of F and R. Trying to insert 30 at this stage what happens? Delete 2
elements from the queue and insert 70, 80 & 90. Show the sequence of steps with necessary diagrams
with the value of F & R.
11. Construct an expression tree for the expression (a+b*c) + ((d*e+f)*g). Give the outputs when you
apply in-order, preorder, and post-order traversals.
12. Given input {4371, 1323, 6173, 4199, 4344, 9679, 1989} and a hash function h(x) =x mod 10. Prepare
the results for the following: i) Open addressing hash table using linear probing. (ii)Open addressing
hah table using quadratic probing.
13. Write a bubble sort program with a condition that its best-case complexity will be O(n).
14. Write a program to merge two sorted arrays in a single array.
15. Write a program to reverse elements of the queue using stack.
16. Write a recursive program to find the greatest common divisor of two numbers.
17. Develop a program to merge two sorted linked lists (P & Q). Assume that they are available to get a
single sorted list S. Eg. P:1->2->45->56 Q:3->24->56->63->66
18. Evaluate the postfix expression 10 5 + 60 6/ * 8 -