This course aims to provide fundamental knowledge on data structure designing and implementation for storing information, and various algorithms used in computer sciences.
Course Contents:
Unit I: Introduction ————————————————————– 3 hours
-
- Introduction of DSA
- Abstract Data Types (ADTs)
- Its scope
- Data structure and its types
- Brief introduction to Recursion
Unit II: Algorithms Analysis ————————————————— 2 hours
-
- Mathematical background
- Model
- What to analyze?
- Running time calculations
Unit III: Lists, Stacks and Queues ——————————————– 6 hours
-
- The list ADT (linear, linked list)
- The stack ADT
- The queue ADT (linear and Circular)
Unit IV: Trees ——————————————————————— 6 hours
-
- Preliminaries
- Binary trees
- The search tree ADT
- Binary search trees
- ABL trees
- Splay trees
- Tree traversals (revisited)
- B-trees
Unit V: Hashing ——————————————————————- 6 hours
-
- General idea
- Hash function
- Load factor Open hashing (separate chaining)
- Closed hashing (Open addressing)
- Rehashing
- Extendable hashing
Unit VI: Priority Queues ——————————————————– 6 hours
-
- Simple implementation
- Binary heap
- Applications of priority queues
- D-heaps
- Leftist heaps
- Skew heaps
- Binomial queues
Unit VII: Sorting —————————————————————– 7 hours
-
- Preliminaries
- Indentation sort
- A lower bound for simple sorting algorithms
- Shell-sort
- Heap-sort
- Merge-sort
- Quick-sort
- Sorting large objects
- A general lower bound for sorting
- Bucket sort
- External sorting
Unit VIII: Graph Algorithm ————————————————— 6 hours
-
- Definitions
- Topological sort
- Shortest-path algorithm
- Network flow problems
- Minimum Spanning Tree Applications of Depth-first search
Unit IX: Algorithm Design Techniques ————————————– 6 hours
-
- Greedy algorithm
- Divide and conquer
- Dynamic programming
- Randomized algorithms
- Backtracking algorithms
Laboratory:
There shall be 10 lab exercises based on C or C++
-
- Implementation of stack
- Implementation of linear and circular queue
- Solution of TOH and Fibonacci recursion
- Implementation of Link list: Singly, and doubly linked
- Implementation of tree: AVL tree, Balancing of AVL
- Implementation of merge sort
- Implementation of search: sequential, Tree and Binary
- Implementation of Graphs: Graph traversals
- Implementation of hashing
- Implementation of heap
Text Books:
-
- Langsam, Y., Augustin, M.J. and Tanenbaum, A.M: Data Structure Using C and C++, Prentice Hall of India
- Rowe, G.W.: Introduction to Data Structure and Algorithms with C and C++, Prentice Hall of India
- Mark, Allen, Weiss: Data structure and Algorithm Analysis in C++
Recommended:
-
- Any C and C++ book