Home Research Teaching Publications index
January 2020
This course will introduce data structures and algorithms
We expect every student to follow the highest standards of integrity and academic honesty. Copying/sharing code in exams, homeworks, labs are not allowed. See the IIT Goa policy for academic malpractices.
Week | Topic | Resources |
---|---|---|
1 | Course Introduction. Basic sorting, searching algorithm. | chap. 2. CLRS, Prof. Navin Garg's NPTEL |
Time/Space analysis - Best case, worst case scenario. Order notation- Big O, omega, theta notation | chap. 3. CLRS, Prof. Navin Garg's NPTEL | |
2 | Recursion - Factorial, Fibonacci, print all subsets, print all permutations | MIT OCW - Recursion |
Linked list. Stacks and Queues using linked list | chap. 10. CLRS, NPTEL lecture 1, lecture 2, lecture 3 | |
3 | Graphs and Representations - Adjacancy matrix, adjacancy list | chap. 22. CLRS, NPTEL lecture 1, lecture 2 |
Graphs traversals - Breadth first search (BFS) and Depth first search (DFS) | chap. 22. CLRS, NPTEL lecture | |
4 | Trees. Binary tree - Representations | chap. 10.4. CLRS, NPTEL lecture |
Tree traversals - Preorder, Inorder, Postorder | NPTEL lecture | |
5 | Tree traversals in detail | same as above |
6 | Heap - Definition, Insert, delete, find maximum. Running time analysis. Heap Sort, Priority queue | |
7 | Binary search tree - Search, insert, successor and predecessor. Run time analysis | |
8 | Red black trees - Search, insert, delete. Run time analysis | |
9 | Hashing | |
10 | Sets | |
# | Problem | |
---|---|---|
Programming assignments | ||
1 | 1. Implement add, remove elements in the front and back of linked list. 2. Create C++ class which simulates basic operations of stack and queue using linked list. 3. Create a BigInteger class which stores as big an integer we want and write operations for addition and multiplication. |
|
2 | Family tree - Build a data structure to store information about father, mother and children. Note that a person can have children with more than one person. You will then need to write a function, which takes two person and tell their relationship. The output can be one of the following: father, mother, grand father/mother, i-th great grand father/mother, or i-th cousin j-removed. See https://www.genealogy.com/articles/research/16_cousn.html for proper terminology about family relationships. |
|
3 | From inorder and postorder information build the tree | |
4 | 1. Write an algorithm to print all k size permutations of an n element set (with and without repetitions). 2. Implement a stack using two queues. 3. Implement a queue using two stacks. |
|