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.
5 1 SORTING AND SEARCHING TECHNIQUES Unit Structure: 1.1 1.2 1.3 1.4 1.5 Sorting Searching Analysis of Algorithm Complexity of Algorithm Asymptotic Notations for Complexity Algorithms 1.1 SORTING Sorting and searching are the most important techniques used in the computation. When the history of computing might be defined ‘searching‘ and ‘sorting’ would have been at top. They are the most common ingredients of programming systems. The sorting techniques are classified as internal and external sorting. Here we are going to discuss the different sorting techniques such as bubble sort, selection sort, Insertion, Shell sorts and Sequential, Binary, Indexed Sequential Searches, Interpolation, Binary Search ,Tree Sort, Heap sort, Radix sort. 1.1.1 Insertion Sort It is one of the simplest sorting algorithms. It consists of N-1 passes. For pass P= 1 through N – 1, insertion sort ensures that the elements in positions 0 through P are sorted order. Insertion sort makes use of the fact that elements in positions 0 through P – 1 are already known to be in sorted order as shown in following table 1.1 Original 34 8 64 51 32 21 P=1 P=2 P=3 P=4 P=5 8 8 8 8 8 34 34 34 32 21 64 64 51 34 32 51 51 64 51 34 32 32 32 64 51 21 21 21 21 64 Positions Moved 1 0 1 3 4 Table 1.1 Insertion sort after each pass