Rajarshi Janak University
Faculty of Science, Technology and
Engineering
Course of Study for B.Sc. CSIT
(Third Semester/Second Year)
Course Title: Data Structures and Algorithms Course Code: SCIT 302
Nature of Course: Theory + Practical Full Mark: 60+20+20
Credit hrs.: 3 Pass Mark: 24+8+8
L. Hrs.: 45
Course Description:
This course introduces the fundamental concepts of data structures and algorithms. It emphasizes
the efficient management, and processing of data structures like stacks, queues, linked lists, hash
tables, trees, and graphs. The course also covers the concepts of recursion, sorting and searching
algorithms.
Course Objectives:
Upon the completion of the course, students will be able to:
• Understand and use data structures for real world applications.
• Implement stacks and queues
• Use linked lists and hash tables
• Apply recursive and non-recursive methods for algorithmic solutions.
• Perform sorting and searching of data
• Understand and implement the tree and graph
• Design and implement algorithms using appropriate data structures for given problems.
• Analyze the time and space complexity of algorithms using asymptotic notations.
Course Contents:
Unit 1: Introduction to Data Structures and Algorithms [3 Hrs.]
Data Structure, Data Type, Abstract Data Type, Linear and Non-linear Data Structure, Algorithm
Basics: Definition, Properties, and Design Strategies, Asymptotic analysis: Big-O, Theta, Omega
Notations
Unit 2: Stack [4 Hrs.]
Introduction to Stack, Stack as an ADT, Stack Operations: Push, Pop, Using Stack for Infix,
Postfix and Prefix Expression Evaluation and Conversion, Applications of Stack
Unit 3: Queue [4 Hrs.]
Introduction to Queue, Queue as an ADT, Queue operations: Enqueue, Dequeue, Queue Variants:
Circular Queue, Priority Queue, Double Ended Queue, Applications of Queue
Unit 4: Recursion [3 Hrs.]
Recursion, Tail Recursion, Using Recursion for solving problems like Factorial, Fibonacci
Sequence, TOH Problem, Applications of Recursion
Unit 5: Linked List [8 Hrs.]
Lists, List as ADT, Array Implementation of Lists, Linked List, Linked List Operations: Node
Creation, Insertion: Beginning, End and Specific Position, Deletion: Beginning, End and Specific
Position, Traversal of Linked List, Types of Linked Lists: Circular and Doubly, List
Implementation of Stack and Queue
Unit 6: Sorting, Searching and Hashing [8 Hrs.]
Introduction to Sorting, Internal and External Sorting, Types of Sorting: Bubble Sort, Insertion
Sort, Selection Sort, Merge Sort, Quick Sort, Performance Analysis of Sorting Algorithms,
Applications of Sorting,
Introduction to Searching, Types of Searching: Linear and Binary Search, Performance Analysis
of Searching Algorithms, Applications of Searching
Hashing, Hash Function, Hash Table, Collision Resolution
Unit 7: Tree [7 Hrs.]
Tree, Tree as ADT, Binary Trees, Binary Search Trees (BST), Tree Operations: Insertion, Deletion,
Searching, Tree Traversals: Inorder, Preorder, Postorder, Self-Balancing Trees, AVL Tree,
Balancing AVL Tree, Applications of Tree
Unit 8: Graph [8 Hrs.]
Graph, Graph as an ADT, Graph Implementation using Adjacency Matrix, Adjacency List, Graph
Traversal using Depth First Search (DFS) and Breadth First Search (BFS), Minimum Spanning
Trees using Kruskal and Prims Algorithm, Applications of Graph, Shortest Path Algorithms:
Dijkstra Algorithm, Bellman-Ford Algorithm
Laboratory Works:
Laboratory work consists of implementing the various types of data structures using either C or
C++. Laboratory work includes the following concepts:
• Implementation of Stack and its operations
• Implementation of Queue and its operations
• Linked list Implementations: Singly, doubly, and circular lists with their oprations
• Sorting and Searching Algorithms
• Implementation of Hash Tables
• Binary Search Tree Implementations
• Tree Traversals
• Graph Implementations
• Graph Traversals: DFS, BFS,
• Shortest Path Using Dijkstra’s Algorithm
• A project for solving real world problem using appropriate data structures.
Text Books / Reference Books
1. Weiss, M. A. (2013). Data Structures and Algorithm Analysis in C++ (4th ed). Pearson
Education.
2. Langsam, Y., Augenstein, M. J., & Tanenbaum, A. M. (1995). Data Structures Using C
and C++ (2nd ed). Prentice Hall.
3. Balagurusamy E.. Data Structures using C. MC Graw Hill,
4. Lipschutz S. (2017).Schaum’s Outlines Data Structures with C (1st ed), MC Graw Hill
India
5. Thareja R. (2012), Data Structures Using C, (3rd ed), Oxford University Press.
6. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to
Algorithms (4th ed). MIT Press.