Table of contents : 1. Introduction to Data Structures Structure Objectives Introduction Data types Types of data structures Game of clones The game of clones revisited Conclusion Multiple choice questions Theory-based questions Application-based questions 2. Design Methodologies Structure Objectives Greedy approach Divide and conquer Backtracking and dynamic programming Longest common sub-sequence Conclusion Multiple choice questions Programming/application Further references 3. Recursion Structure Objectives Exponentiation Tower of Hanoi Rabbit problem Generating binary numbers Lists Numbers Conclusion Multiple choice questions Programming Further references 4. Arrays Structure Objectives Introduction Memory map Address in column-major Inserting and deleting Operations on arrays Linear search Problems Conclusion Multiple choice questions Programming 5. Linked List Structure Objectives One-way linked list Traversing Insertion and deletion Two-way Traversing Insertion and deletion Cyclic list Stacks and Queues Reversing a linked list Concatenate lists Check cycle Conclusion Multiple choice questions Theory Problems 6. Stacks Structure Objectives Introduction Implementing two stacks using a single list Types and uses Reversing a string Expressions Evaluation of postfix Infix to postfix Infix to prefix Problems Conclusion Multiple Choice Questions Problems 7. Queues Structure Objectives Introduction Algorithm and implementation Circular queue Doubly-ended queue: DEQueue Generating binary numbers using a queue Stack using two queues Stack from a single queue Scheduling Conclusion Multiple Choice Questions Problems 8. Trees-I Introduction Structure Objectives Definition and terminology Representation of a Binary Tree Traversal Post-order traversal Pre-order traversal Binary search tree Insertion in a BST Deletion Leftmost node Rightmost node Conclusion Multiple choice questions Numerical/problems 9. Trees-II Structure Objectives AVL trees Insertion Insertion in an AVL tree Deletion from an AVL Tree B Trees Conclusion Multiple choice questions Theory Numericals 10. Priority Queues Structure Objectives Introduction to priority queues Structure of heap Operations Inserting an element in a heap Deletion Heap sort Problems Conclusion Multiple choice questions Programming Further references 11. Graphs Introduction Structure Objectives Representation Traversals Depth First Search Breadth First Search Topological sort Spanning tree Kruskal’s algorithm Conclusion Multiple choice questions Numerical/application based Programming 12. Sorting Structure Objectives Bubble sort Comb sort Selection sort Insertion sort Radix sort Counting sort Merge and merge sort Partition and quick sort Conclusion Illustrations Multiple choice questions Theory 13. Median and Order Statistics Introduction Structure Objectives Introduction to median and order statistics Median of medians Median using heaps Median using insertion sort Median using partition Conclusion Solved problems Multiple choice questions Applications/implementation Bibliography 14. Hashing Structure Objectives Hash tables Storing information Sorted sequential array Linked list representation AVL trees Hashing Hash function Collision resolution Selecting hash function Collisions Collision resolution Linear probing Quadratic probing Separate chaining Solved problems Conclusion Multiple choice questions Theory Problems Programming 15. String Matching Structure Objectives Introduction to string-matching Brute force method Rabin Karp Knuth–Morris–Pratt algorithm KMP method Conclusion Multiple choice questions Theory/applications Find errors/special cases References Appendix 1: All Pairs Shortest Path Introduction All Pairs Shortest Path Appendix 2: Tree Traversals Introduction In-Order Traversal Pre-order traversal Post-order traversal Appendix 3: Dijkstra’s Shortest Path Algorithm Introduction Dijkstra’s shortest path algorithm Appendix 4: Supplementary Questions Arrays: Level 0 Arrays: Level 1 Stacks Linked List Trees Graphs Application based Solved problems Multiple choice questions Applications/implementation Bibliography 14. Hashing Structure Objectives Hash tables Storing information Sorted sequential array Linked list representation AVL trees Hashing Hash function Collision resolution Selecting hash function Collisions Collision resolution Linear probing Quadratic probing Separate chaining Solved problems Conclusion Multiple choice questions Theory Problems Programming 15. String Matching Structure Objectives Introduction to string-matching Brute force method Rabin Karp Knuth–Morris–Pratt algorithm KMP method Conclusion Multiple choice questions Theory/applications Find errors/special cases References Appendix 1: All Pairs Shortest Path Introduction All Pairs Shortest Path Appendix 2: Tree Traversals Introduction In-Order Traversal Pre-order traversal Post-order traversal Appendix 3: Dijkstra’s Shortest Path Algorithm Introduction Dijkstra’s shortest path algorithm Appendix 4: Supplementary Questions Arrays: Level 0 Arrays: Level 1 Stacks Linked List Trees Graphs Application based