Government Logo

ELECTRONICS AND ICT ACADEMY AT NATIONAL INSTITUTE OF TECHNOLOGY PATNA

Setup Under Scheme of Department of Electronics and Information Technology

Ministry of Communications and IT, Govt. of India

NIT Patna Logo
Module 2

Starting from 22.09.2015

Data Structures and Algorithms (L + P - 50 hrs.)

Objectives: To provide theoretical and practical concepts along with the uses of data structures and algorithms.

Outcome: On completion of this course, students are expected to be capable of understanding the data structures, their advantages, and drawbacks, how to implement them in C or in their known language, how their drawbacks can be overcome and what the applications are and where they can be used. Students should be able to learn about the data structures, methods, and algorithms mentioned in the course with a comparative perspective so as to make use of the most appropriate data structure, method, or algorithm in a program to enhance efficiency (i.e., reduce the run-time) or for better memory utilization, based on the priority of the implementation. The participant should be able to convert an inefficient program into an efficient one using the knowledge gathered from this course.


Theory (L - 50 hrs.)

S.NoTopicLecture (hrs)
1Algorithm efficiency and analysis, order notations1
2Array: Different representations – row major, column major. Sparse matrix - its implementation and usage2
3Array representation of polynomials1
4Linked List: Singly linked list, circular linked list, doubly linked list2
5Representation of polynomial expression and Sparse Matrix using suitable Linked List2
6Stack and its implementations, Principles of recursion – use of stack, Tail recursion, Applications - The Tower of Hanoi, Eight Queens Puzzle2
7Queue, circular queue, Dequeqe, Priority Queue and its different Implementation, Applications1
8Trees: Basic Concepts & representation, Binary trees - Traversal (pre-, in-, post- order), Threaded binary tree (left, right, full), Expression tree3
9Binary search tree- operations (creation, insertion, deletion, searching)2
10B-Trees & B+ Tree – operations1
11Heaps: Balanced Search Trees as Heaps, Array-Based Heap, Heap-Ordered Trees and Half-Ordered Trees, Leftist Heaps, Skew Heap, Binomial Heaps, Changing Keys in Heaps2
12Height-Balanced Trees and Weight Trees2
13Red-Black Trees and Trees of Almost Optimal Height1
14Top-Down Rebalancing for Red-Black Trees, Trees with Constant Update Time at a Known Location, Finger Trees and Level Linking2
15Trees with Partial Rebuilding: Amortized Analysis, Splay Trees: Adaptive Data Structures1
16Skip Lists: Randomized Data Structures, Joining and Splitting Balanced Search Trees1
17Interval Trees, Segment Trees, Trees for Interval-Restricted Maximum Sum Queries, Orthogonal Range Trees, and Higher-Dimensional Segment Tree2
18Searching: Sequential search, binary search, interpolation search.2
19Sorting Algorithms: Bubble sort and its optimizations, insertion sort, shell sort, selection sort, merge sort, quick sort, heap sort, radix sort4
20Graph definitions and concepts. Graph representations/storage implementations – adjacency matrix, adjacency list, adjacency multi-list2
21Graph traversal algorithm: Breadth First Search (BFS) and Depth First Search (DFS) – Classification of edges - tree, forward, back and cross edges – complexity and comparison1
22Basic Hash Tables and Collision Resolution, Universal Families of Hash Functions, Perfect Hash Functions, and Hash Trees, Extendible Hashing, Membership Testers and Bloom Filters2
23Divide & Conquer Algorithms2
24Greedy Algorithms: Basic method, use, Examples2
25Dynamic Programming: Basic method, use, Examples4
26Backtracking Algorithms:4
27Notion of NP-completeness: P class, NP class, NP hard class, NP complete class – their interrelationship, Satisfiability problem, Cook’s theorem, Clique decision problem4
Total lecture (hrs.)50

Laboratory

  • Lab 1: Sequential search, binary search, interpolation search, Array insertion and deletion from any position, sparse matrix, array representation using polynomial.
  • Lab 2: Implementation of linked lists: inserting, deleting, and inverting a linked list. Polynomial addition and Polynomial multiplication using linked lists.
  • Lab 3: Stacks and Queues: adding, deleting elements Circular Queue, Priority queue, Infix to prefix and postfix conversion.
  • Lab 4: Factorial using recursion, Tower of Hanoi, Backtracking: Implement 8 Queen problem.
  • Lab 5: Merge sort, quick sort, radix sort, Sequential search, binary search, interpolation search.
  • Lab 6: Binary Tree, Traversal of Binary Tree, Binary Search Tree.
  • Lab 7: AVL tree, Red and Black Tree, B-Tree.
  • Lab 8: Balanced search trees as heap, Fibonacci heap, heap sort.
  • Lab 9: Graph Traversal Algorithm: (i) Breadth First Search (BFS), (ii) Depth First Search (DFS).
  • Lab 10: Greedy method: Minimum Cost Spanning Tree by (i) Prim's Algorithm, and (ii) Kruskal's Algorithm.