1. Introduction to C; 1.1 Introduction; 1.2 Identifiers and Keywords; 1.3 Basic Data Types; 1.4 Variables And Constants; 1.5 Writing the First C Program; 1.6 Input and Output Functions; 1.
7 Operators and Expressions; 1.8 Type Conversion and Typecasting; 1.9 Control Statements; 1.10 Functions; 1.11 Pointers; 2. Introduction to Data Structures and Algorithms; 2.1 Basic Terminology; 2.2 Classification of Data Structures; 2.
3 Operations on Data Structures; 2.4Abstract Data Type; 2.5 ALGORITHMS; 2.6 Different Approaches to Designing an Algorithm; 2.7 Control Structures Used In Algorithms; 2.8 Time and Space Complexity; 2.9 Big O Notation; 2.10 Omega Notation(?); 2.
11 Theta Notation (Q); 2.12 Other Useful Notations; 3. Arrays; 3.1 Introduction; 3.2 Declaration of Arrays; 3.3 Accessing the Elements of an Array; 3.4 Storing Values in Arrays; 3.5 Operations on Arrays; 3.
6 Passing Arrays to Functions; 3.7 Pointers And Arrays; 3.8 Arrays of Pointers; 3.9 Two-Dimensional Arrays; 3.10 Operations On Two-Dimensional Arrays; 3.11 Passing two-dimensional arrays to functions; 3.12 Pointers And two-dimensional Arrays; 3.13 Multi-Dimensional Arrays; 3.
14Pointers and Three-Dimensional Arrays; 3.15 Sparse Matrices; 3.16 Applications of Arrays; 4. Strings; 4.1 Introduction; 4.2 Operations on Strings; 4.3 Arrays of Strings; 4.4 Pointers and Strings; 5.
Structures and Unions; 5.1 Introduction; 5.2 Nested Structures; 5.3 Arrays of Structures; 5.4 Structures And Functions; 5.5 Self-Referential Structures; 5.6 Unions; 5.7 Arrays of Union Variables; 5.
8 Unions Inside Structures; 6. Linked Lists; 6.1 Introduction; 6.2 Singly Linked Lists; 6.3 Circular Linked Lists; 6.4 Doubly Linked Lists; 6.5 Circular Doubly Linked Lists; 6.6 Header Linked Lists; 6.
7 Multi-Linked Lists; 6.8 Applications of Linked Lists; 7. Stacks; 7.1 Introduction To Stacks; 7.2Array Representation of Stacks; 7.3 Operations on a Stack; 7.4 Linked Representation of Stacks; 7.5 Operations on A Linked Stack; 7.
6 Multiple Stacks; 7.7 Applications of Stacks; 8. Queues; 8.1Introduction to Queues; 8.2 Array Representation of Queues; 8.3 Linked Representation of Queues; 8.4 Types of Queues; 8.5 Applications of Queues; 9.
Trees; 9.1 Introduction; 9.2 Types of Trees; 9.3 Creating a Binary Tree from a General Tree; 9.4 Traversing a Binary Tree; 9.5 Huffman's Tree; 9.6 Applications of Trees; 10. Efficient Binary Trees; 10.
1 Binary Search Trees; 10.2 Operations on Binary Search Trees; 10.3 Threaded Binary Trees; 10.4 AVL Trees; 10.5 Red-Black Trees; 10.6 Splay Trees;11. Multi-way Search Trees; 11.1 Introduction to M-Way Search Trees; 11.
2 B Trees; 11.3 B+ Trees; 11.4 2-3 Trees; 11.5 Trie; 12. Heaps; 12.1 Binary Heaps; 12.2 Binomial Heaps; 12.3 Fibonacci Heaps; 12.
4Comparison of Binary, Binomial,and Fibonacci Heaps; 12.5 Applications of Heaps; 13. Graphs; 13.1 Introduction; 13.2 Graph Terminology; 13.3 Directed Graphs; 13.4 Bi-Connected Components; 13.5 Representation of Graphs; 13.
6 Graph Traversal Algorithms; 13.7 Topological Sorting; 13.8 Shortest Path Algorithms; 13.9 Applications of Graphs; 14. Searching and Sorting; 14.1 Introduction To Searching; 14.2 Linear Search; 14.3 Binary Search; 14.
4 Interpolation Search; 14.5 Jump Search; 14.6 IntroductionTo Sorting; 14.7 Bubble Sort; 14.8 Insertion Sort; 14.9 Selection Sort; 14.10 Merge Sort; 14.11 Quick Sort; 14.
12 Radix Sort; 14.13 Heap Sort; 14.14 Shell Sort; 14.15 Tree Sort; 14.16 Comparison ofSorting Algorithms; 14.17 External Sorting; 15. Hashing and Collision; 15.1 Introduction; 15.
2 Hash Tables; 15.3 Hash Functions; 15.4 Different Hash Functions; 15.5 Collisions; 15.6 Pros and Cons of Hashing; 15.7 Applications of Hashing; 16. Files and Their Organization; 16.1 Introduction; 16.
2 Data Hierarchy; 16.3 File Attributes; 16.4 Text and Binary Files; 16.5 Basic File Operations; 16.6 File Organization; 16.7 Indexing.