Logo

BITM Data Structure and Algorithm with Java

bitmsemester 4

Data Structure and Algorithm with Java

Subject Code: IT218

Course Title: Data Structure and Algorithm with Java

Course No: IT218

Nature of Course: Theory & Practical

Full Marks: 60 + 40

Pass Marks: 30 + 20

Credit Hours: 3

Course Description

The course contains Complexity Analysis, Linked Lists, Stacks and Queues, Recursion, Binary Trees, Multiway Trees, Graph, Sorting, Hashing.

Course Objective

This course aims to provide a systematic introduction to data structures and algorithms for constructing efficient computer programs. The course emphasizes on data abstraction issues (through ADTs) in the program development process, and on efficient implementation of chosen data structures and algorithms. Laboratory work is essential in this course.

Course Contents

Course Contents Teaching Methodology Teaching Hours
Unit 1: Complexity Analysis (4 Hrs.)
Computational and Asymptotic Complexity. Lecture/Lab
Big-O Notation.
Properties of Big-O Notation Ω and Q.
Possible Problems.
Examples of Complexities.
Finding Asymptotic Complexity: Examples.
The Best, Average, and Worst Cases.
Amortized Complexity.
NP-Completeness.
Unit 2: Linked Lists (5 Hrs.)
Singly Linked Lists: Insertion, Deletion, Search. Lecture/Lab
Doubly Linked Lists: Circular Lists, Skip Lists, Self-Organizing Lists.
Sparse Tables.
Case Study: A Library.
Unit 3: Stacks and Queues (4 Hrs.)
Stacks, Queues, Priority Queues. Lecture/Lab
Case Study: Existing a Maze.
Unit 4: Recursion (4 Hrs.)
Recursive Definitions. Lecture/Lab
Method Calls and Recursion Implementation.
Anatomy of a Recursive Call.
Tail Recursion.
Nontail Recursion.
Indirect Recursion.
Nested Recursion.
Excessive Recursion.
Backtracking.
Unit 5: Binary Trees (9 Hrs.)
Trees, Binary Trees, and Binary Search Trees. Lecture/Lab
Implementing Binary Trees.
Searching a Binary Search Tree.
Tree Traversal.
Breadth-First Traversal.
Depth-First Traversal.
Insertion, Deletion, Deletion by Merging, Deletion by Copying.
Balancing a Tree.
The DSW Algorithm.
AVL Trees.
Self-Adjusting Trees.
Self-Restructuring Trees, Splaying.
Heaps: Heaps as Priority Queues, Organizing Arrays as Heaps, Polish Notation and Expression Trees.
Operations on Expression Trees.
Case Study: Computing Word Frequencies.
Unit 6: Multiway Trees (5 Hrs.)
The Family of B-Trees. Lecture/Lab
B-Trees, B*-Trees, B+-Trees.
Case Study: Spell Checker
Unit 7: Graphs (6 Hrs.)
Graph Representation. Lecture/Lab
Graph Traversals, Shortest Paths, All-to-All Shortest Path Problem, Cycle Detection.
Spanning Trees.
Connectivity.
Connectivity in Undirected Graphs, Connectivity in Directed Graphs.
Topological Sort, Networks.
Unit 8: Sorting (6 Hrs.)
Elementary Sorting Algorithms: Insertion Sort, Selection Sort, Bubble Sort. Lecture/Lab
Efficient Sorting Algorithms: Heap Sort, Quicksort, Mergesort, Radix Sort.
Case Study: Adding Polynomials.
Unit 9: Hashing (5 Hrs.)
Hash Functions: Division, Folding, Mid-Square Function, Extraction. Lecture/Lab
Collision Resolution: Open Addressing, Chaining, Bucket Addressing, Deletion.
Case Study: Hashing with Buckets.

Text Books

1. Drozdek Adam, Data Structures and Algorithms in Java, 3rd edition

Reference Books

1. Duncan A. Buell, Data Structures Using Java
2. Main Michael, Data Structures and Other Objects Using Java, Prentice Hall (4th edition)
3. Robert Lafore, Data Structures and Algorithms in Java, Sams Publishing
4. Narasimha Karumanchi, Data Structures And Algorithms Made Easy In Java, CareerMonk Publications