R Krishnamoorthy, PhD is Professor of Information Technology, BharathidasanInstitute of Technology, Bharathidasan University, Trichy. Dr R Krishnamoorthyreceived his M. Tech Degree in Computer Science and Engineering from IndianInstitute of Technology, Kanpur and PhD degree in Computer Science and Engineer-ing from Indian Institute of Technology, Kharagpur, with specialization in ComputerVision and Image Processing. He has 24 years of teaching experience. He is theauthor of three books, and forty-four technical papers published in National andInternational Conferences and International Journals. He has produced five PhDs. Heis member of CSI, ISTE, IEEE and ACM. His areas of interest include network secu-rity, image processing and software testing.G Indirani Kumaravel is Senior Lecturer in Computer Science and Engineering,Annamaiai University, Chidambaram. She received her M E degree in ComputerScience and Engineering from Annamalai University. Indirani has 12 years of teach-ing experience. She is a member of CSI. Her areas of interest include Speech andImage Processing.
图书目录
Preface ix 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 for Queues 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 Trees296 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