1 Syllabus MCA Sem-II, Paper - I Data Structures 1. Sorting and Searching Techniques Bubble, Selection, Insertion, Shell sorts and Sequential, Binary, Indexed Sequential Searches, Interpolation, Binary Search Tree Sort, Heap sort, Radix sort. Analysis of Algorithms Algorithms, Pseudo code for expressing algorithms, time complexity and space complexity, O-notation, Omega notation and theta notation. 2. Hashing Techniques Hash function Address calculation techniques, Common hashing functions Collision resolution Linear probing, Quadratic Double hashing Bucket hashing Deletion and rehashing 3. Linear Lists Stacks: LIFO structure, create, POP, PUSH, delete stack Queues: FIFO structure Priority Queues, Circular Queues, operations on Queues Linear List Concept List v/s Array, Internal pointer and External pointer, head, tail of a list, Null list, length of a list Linked Lists o Nodes, Linked List Data Structure Linked Lists algorithms o Create List o Insert Node (empty list, beginning, Middle, end) o Delete node (First, general case) o Search list o Retrieve Node, add node, Remove node, Print List
2 o Append Linked List, array of Linked lists Complex Linked List structures o Header nodes o Circularly-Linked List o Doubly Linked List Insertion, Deletion o Multilinked Lists Insertion, Deletion 4. Introduction to Trees Binary Trees o Travesals (breadth-first, depth-first) Expression Trees o (Infix, Prefix, Postfix Traversals) General Trees Search Trees Binary Search Trees 5. Heaps Structure Basic algorithms – Reheap Up, Reheap Down, Build heap, Insert, Delete 6. Multi-way Trees M-way search trees B-Trees o Insertion (Inseet node, Search node, Split node, Insert entry) o Deletion (Node delete, Delete entry, Delete mid, ReFlow, Balance, Combine) o Traverse B-Tree B-Tree Search Graphs Terminology Operations (Add vertex, Delete vertex, Add Edge, Delete Edge, Find vertex) Traverse Graph (Depth-First, Breadth-First) Graph Storage Structures (Adjacency Matrix, Adjacency List) Networks o Minimum Spanning Tree o Shortest Path Algorithm o (Dijkstra’s algorithm, Kruskal’s algorithm, Prim’s algorithm, Warshall’s algorithm)
3 Term work/Practical: Each candidate will submit a journal / assignments in which at least 10 assignments based on the above syllabus along with the flow chart and program listing. Internal tests to be conducted separately. 1. Data structure – A Pseudocode Approach with C – Richard F Gilberg Behrouz A. Forouzan, Thomson. 2. Schaum’s Outlines Data structure Seymour Lipschutz Tata McGraw Hill 2nd Edition. 3. Data structures and Program Design in C Robert Kruse, C.L. Tondo, Bruce Leung Pearson. 4. “Data structure using C” AM Tanenbaum, Y Langsam and MJ Augustein, Prentice Hall India. 5. “An Introduction to Structure with application” Jean – Paul Trembly and Paul Sorenson. 6. Data structure and Program design in CRL Kruse, BP Leung and CL Tondo Prentice-Hall. 7. Data structure and Algorithm Analysis in C Weiss, Mark Allen Addison Wesley. Program List in Data Structures 1. Write a program in C to implement simple Stack, Queue, Circular Queue, Priority Queue. 2. Write a menu driven program that implements singly linked list for the following operations: Create, Display, Concate, merge, union, intersection. 3. Write a menu driven program that implements doubly linked list for the following operations: Create, Display, Count, Insert, Delete, Search, Copy, Reverse, Sort. 4. Write a menu driven program that implements doubly linked list for the following operations: Create, Display, Concate, merge, union, intersection. 5. Write a menu driven program that implements Singly circular linked list for the following operations: Create, Display, Count, Insert, Delete, Search, Copy, Reverse, Sort. 6. Write a program in C for sorting methods. 7. Write a menu driven program in C to
4 a. Create a binary search tree b. Traverse the tree in Inorder, Preorder and Post Order c. Search the tree for a given node and delete the node Write a program in C to implement insertion and deletion in tree. B 8. Write a program in C to implement insertion and deletion in AVL tree. 9. Write a menu driven program that implements Heap tree (Maximum and Minimum Heap tree) for the following operations. (Using array) Insert, Delete. 10. Write a program to implement double hashing technique to map given key to the address space. Also write code for collision resolution (linear probing) 11. Write a program in C to implement Dijkstras shortest path algorithm for a given directed graph. 12. Write a program in C to insert and delete nodes in graph using adjacency matrix. 13. Write a program in C to implement Breadth First search using linked representation of graph. 14. Write a program in C to implement Depth first search using linked representation of graph. 15. Write a program in C to create a minimum spanning tree using Kruskal’s algorithm. 16. Write a program in C to create a minimum spanning tree using Prim’s algorithm.