3134201-Data Structures and Algorithms
3134201-Data Structures and Algorithms
Bachelor of Engineering
Subject Code: 3134201
Data Structures and Algorithms
3rd Semester
Rationale:
• To understand the basic concepts of data structures and algorithms.
• To differentiate linear and non-linear data structures and the operations upon them.
• Ability to perform sorting and searching in each set of data items.
• To comprehend the necessity of time complexity in algorithms.
Contents:
Sr. Total
Content
No. Hrs
Introduction to Algorithms and Analysis: Overview and importance of algorithms
and data structures. Fundamentals of algorithm analysis, Space and time complexity of
1 an algorithm, Types of asymptotic notations and orders of growth, Algorithm efficiency 06
– best case, worst case, average case, Analysis of non-recursive and recursive
algorithms, Asymptotic analysis for recurrence relation – Recursive Tree Method.
Linear Data Structures: Array- 1D and 2D array, Stack - Applications of stack:
Expression Evaluation - Conversion of Infix to postfix and prefix expression, Tower of
2 Hanoi. Queue - Types of Queue: Circular Queue, Double Ended Queue (deQueue), 08
Applications – Priority Queue using Arrays, List - Singly linked lists – Doubly linked
lists - Circular linked lists.
Sorting and Searching Techniques, Hashing: Searching - Linear Search and binary
search (divide and conquer technique), Applications - Sorting – Insertion sort -
3 Selection sort – Bubble sort – Quick sort – Merge sort, Analysis of sorting algorithms. 07
Hash functions, open hashing-separate chaining, closed hashing - linear probing,
quadratic probing, double hashing
Divide and Conquer Algorithm: Introduction, Recurrence, and different methods to
4 04
solve recurrence, multiplying large Integers Problem.
Non-linear Data Structures – Trees: Tree - Terminology, Binary Tree – Terminology
and Properties, Tree Traversals, Expression Trees – Binary Search Trees – operations
5 07
in BST – insertion, deletion, finding min and max, Finding the kth minimum element
in a BST, AVL tree.
Non-linear Data Structures – Graphs: Graph – basic definition and Terminology –
6 Representation of Graph – Graph Traversal: Breadth First Search (BFS), Depth First 04
Search (DFS)
Greedy Algorithm: General Characteristics of greedy algorithms, Problem solving
7 04
using Greedy Algorithm - Activity selection problem, Elements of Greedy Strategy,
Page 1 of 3
w.e.f. AY 2020-21
GUJARAT TECHNOLOGICAL UNIVERSITY
Bachelor of Engineering
Subject Code: 3134201
Minimum Spanning trees (Kruskal’s algorithm, Prim’s algorithm), Graphs: Shortest
paths, The Knapsack Problem, Job Scheduling Problem
Dynamic Programming: Introduction, The Principle of Optimality, Problem Solving
using Dynamic Programming – Calculating the Binomial Coefficient, Making Change
8 05
Problem, Assembly Line-Scheduling, Knapsack problem, Matrix chain multiplication,
Longest Common Subsequence.
Backtracking and Branch and Bound: Introduction, The Eight queens’ problem,
9 03
Knapsack problem, Travelling Salesman problem, Minimax principle
Note: This specification table shall be treated as a general guideline for students and teachers. The actual
distribution of marks in the question paper may vary from above table.
Reference Books:
1. Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,
PHI.
2. Fundamentals of Algorithms – E. Horowitz et al.
3. Horowitz, Sahni, and S. Anderson-Freed, Fundamentals of Data Structures in C, Universities Press, Second
Edition,2008.
4. Data Structures using C, Reema Thareja, Oxford University Press, Second Edition.
5. Introduction to Design and Analysis of Algorithms, Anany Levitin, Pearson.
List of Experiments:
(Pl. Note: List of Experiments and Tutorials should be as per theory covered in the class, below mentioned
practical are just for the reference purpose)
1. Implementation and time analysis of Stack and its applications (infix, postfix, prefix).
2. Implementation and time analysis of queue and its applications.
3. Implementation and time analysis of singly linked list.
Page 2 of 3
w.e.f. AY 2020-21
GUJARAT TECHNOLOGICAL UNIVERSITY
Bachelor of Engineering
Subject Code: 3134201
4. Implementation and time analysis of doubly linked list.
5. Implementation and time analysis of circular linked list.
6. Implementation of binary tree and its traversal (preorder, inorder, postorder).
7. Implementation and Time analysis of sorting algorithms – Bubble sort, Selection sort, Insertion sort, Merge
sort and Quicksort.
8. Implementation and Time analysis of linear and binary search algorithm.
9. Implementation and Time analysis of factorial program using iterative and recursive method
10. Implementation of a knapsack problem using dynamic programming.
11. Implementation of chain matrix multiplication using dynamic programming.
12. Implementation of a knapsack problem using greedy algorithm
13. Implementation of Graph and Searching (DFS and BFS).
14. Implement prim’s algorithm
15. Implement 3ruskal’s algorithm.
16. Implement LCS problem.
Page 3 of 3
w.e.f. AY 2020-21