Syllabus 1
Syllabus 1
DATA STRUCTURES AND ALGORITHMS (Common to EEE, EIE & ICE) UNIT 1
3104
LINEAR STRUCTURES
Abstract Data Types (ADT) List ADT array-based implementation linked list implementation cursor-based linked lists doubly-linked lists applications of lists Stack ADT Queue ADT circular queue implementation Applications of stacks and queues UNIT 2 TREE STRUCTURES 9 Need for non-linear structures Tree ADT tree traversals left child right sibling data structures for general trees Binary Tree ADT expression trees applications of trees binary search tree ADT UNIT 3 BALANCED SEARCH TREES AND INDEXING 9
AVL trees Binary Heaps B-Tree Hashing Separate chaining open addressing Linear probing UNIT 4 GRAPHS 9 Definitions Topological sort breadth-first traversal - shortest-path algorithms minimum spanning tree Prim's and Kruskal's algorithms Depth-first traversal biconnectivity euler circuits applications of graphs UNIT 5 ALGORITHM DESIGN AND ANALYSIS 9
Greedy algorithms Divide and conquer Dynamic programming backtracking branch and bound Randomized algorithms algorithm analysis asymptotic notations recurrences NP-complete problems L = 45 Total = 45 TEXT BOOKS 1. M. A. Weiss, Data Structures and Algorithm Analysis in C, Pearson Education Asia, 2002. 2. ISRD Group, Data Structures using C, Tata McGraw-Hill Publishing Company Ltd., 2006. REFERENCES 1. A. V. Aho, J. E. Hopcroft, and J. D. Ullman, Data Structures and Algorithms, Pearson Education, 1983. 2. R. F. Gilberg, B. A. Forouzan, Data Structures: A Pseudocode approach with C, Second Edition, Thomson India Edition, 2005. 3. Sara Baase and A. Van Gelder, Computer Algorithms, Third Edition, Pearson Education, 2000. 4. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, "Introduction to algorithms", Second Edition, Prentice Hall of India Ltd, 2001.
EE2209
DATA STRUCTURES AND ALGORITHMS LAB (Common to EEE, EIE & ICE)
0032
Aim: To develop skills in design and implementation of data structures and their applications. 1. Implement singly and doubly linked lists. 2. Represent a polynomial as a linked list and write functions for polynomial addition. 3. Implement stack and use it to convert infix to postfix expression 4. Implement array-based circular queue and use it to simulate a producerconsumer problem. 5. Implement an expression tree. Produce its pre-order, in-order, and post-order traversals. 6. Implement binary search tree. 7. Implement insertion in AVL trees. 8. Implement priority queue using heaps 9. Implement hashing techniques 10. Perform topological sort on a directed graph to decide if it is acyclic. 11. Implement Dijkstra's algorithm using priority queues 12. Implement Prim's and Kruskal's algorithms 13. Implement a backtracking algorithm for Knapsack problem 14. Implement a branch and bound algorithm for traveling salesperson problem 15. Implement any randomized algorithm. P = 45 Total = 45 REQUIREMENT FOR A BATCH OF 30 STUDENTS S.No. Description of Equipment Quantity required 1. Computer(Pentium 4) 40 Nos with one server 3 Nos 2. Dot matrix printer 3. Laser Printer 2 Nos 4. UPS (5 KVA) 2 5. Turbo C 40 Nodes