1.Data Structures—An Overview 1
1.1 Introduction 1
1.2 Data Types 3
1.3 Program Modules 4
1.4 Control Structures 7
1.5 Looping Structures 13
1.6 Arrays 16
1.7 Structures 24
1.8 Pointers 28
1.9 Recursion 31
Review Yourself 35
Multiple Choice Questions 36
Programming Exercises 38
2.Strings and Character Manipulation 39
2.1 Introduction 39
2.2 Primitive Functions or Operations on Strings 39
2.3 Representation of Strings 41
2.4 String Manipulation in C 42
2.5 String Manipulation Applications 58
Review Yourself 66
Multiple Choice Questions 67
Programming Exercises 67
3.Stacks 68
3.1 Introduction 68
3.2 Definition 68
3.3 Primitive Operations 69
3.4 An abstract Data Type(ADT) 70
3.5 Implementation 70
3.6 Applications of Stack 76
Review Yourself 99
Multiple Choice Questions 99
Programming Exercises 101
4.Queues 102
4.1 Introduction 102
4.2 Definition 102
4.3 Operations on a Queue 103
4.4 ADT forQueues 104
4.5 Representation of Queue 104
4.6 Various Other Queue Structures 112
4.7 Applications 152
Review Yourself 165
Multiple Choice Questions 165
Programming Exercises 165
5.Linked Lists 168
5.1 Introduction 168
5.2 Definition 168
5.3 ADT for Linked List 169
5.4 Singly Linked List 169
5.5 Doubly Linked List 184
5.6 Circular Linked Lists 198
5.7 Sparse Matrices 210
5.8 Applications 232
5.9 Additional Programs 254
Review Yourself 272
Multiple Choice Questions 272
Programming Exercises 273
6.Trees 274
6.1 Introduction 274
6.2 Definition 274
6.3 Terminologies Used 274
6.4 Binary Tree 276
6.5 Threaded Binary Trees 296
6.6 Heap Trees 317
6.7 Deaps 327
6.8 Huffman Algorithm 337
6.9 Decision Trees 344
6.10 Game Tree 351
6.11 Applications 358
Review Yourself 362
Multiple Choice Questions 362
Programming Exercises 363
7.Graphs 364
7.1 Introduction 364
7.2 Definition 365
7.3 Terminologies Used 366
7.4 Representation of Graphs 369
7.5 ADT for Graphs 372
7.6 Extra Information that can be Retrieved from the Adjacency Matrix of the Graph 373
7.7 Operations on Graphs 374
7.8 Applications 410
7.9 Unweighted Shortest Path for Graphs Using Adjacency Matrix 439
7.10 Introduction to NP-completeness 444
Review Yourself 445
Multiple Choice Questions 445
Programming Exercises 446
8.Sorting 447
8.1 Introduction 447
8.2 Definition 448
8.3 Internal Sorting 448
8.4 External Sorting 474
Review Yourself 483
Multiple Choice Questions 483
Programming Exercises 484
9.Searching 485
9.1 Introduction 485
9.2 Quantity Dependent Search Techniques 485
9.3 Density Dependent Search Techniques 490
9.4 Indexed Search Techniques 509
Review Yourself 512
Multiple Choice Questions 512
Programming Exercises 513
10.Search Trees 514
10.1 Introduction 514
10.2 Binary Search Tree(BST) 514
10.3 AVL Trees 530
10.4 B-Trees 544
10.5 B+-Trees 562
10.6 Tries 572
Review Yourself 587
Multiple Choice Questions 587
Programming Exercises 588
11.File Structures 589
11.1 Files 589
Review Yourself 599
Multiple Choice Questions 600
Programming Exercises 600
Index 602