Handbook of Data Structures and Applications - Dinesh P. Mehta

Handbook of Data Structures and Applications

Dinesh P. Mehta

出版时间

2004-10-28

ISBN

9781584884354

评分

★★★★★
书籍介绍
In the late sixties, Donald Knuth, winner of the 1974Turing Award, published his landmark book The Art of Computer Programming: Fundamental Algorithms. This book brought to- gether a body of knowledge that defined the data structures area. The term data structure, itself, was defined in this book to be A table of data including structural relationships. Niklaus Wirth, the inventor of the Pascal language and winner of the 1984 Turing award, stated that “Algorithms + Data Structures = Programs”. The importance of algorithms and data structures has been recognized by the community and consequently, every under- graduate Computer Science curriculum has classes on data structures and algorithms. Both of these related areas have seen tremendous advances in the decades since the appearance of the books by Knuth and Wirth. Although there are several advanced and specialized texts and handbooks on algorithms (and related data structures), there is, to the best of our knowledge, no text or handbook that focuses exclusively on the wide variety of data structures that have been reported in the literature. The goalof this handbook is to provide a comprehensive survey of data structures of di?erent types that are in existence today. To this end, we have subdivided this handbook into seven parts, each of which addresses a di?erent facet of data structures. Part I is a review of introductory material. Although this material is covered in all standard data structures texts, it was included to make the handbook self-containedand in recognitionofthe factthatthere aremany practitionersand programmers who may not have had a formal education in Computer Science. Parts II, III, and IV discuss Priority Queues, Dictionary Structures, and Multidimensional structures, respectively. These are all well-known classes of data structures. Part V is a catch-all used for well-known data structures that eluded easy classification. Parts I through V are largely theoretical in nature: they discuss the data structures, their operations and their complex- ities. Part VI addresses mechanisms and tools that have been developed to facilitate the use of data structures in real programs. Many of the data structures discussed in previous parts are very intricate and take some e?ort to program. The developmentof data structure libraries and visualization tools by skilled programmers are of critical importance in reduc- ing the gap between theory and practice. Finally, Part VII examines applications of data structures. The deployment of many data structures from Parts I through V in a variety of applications is discussed. Some of the data structures discussed here have been invented solely in the context of these applications and are not well-known to the broader commu- nity. Some of the applications discussed include Internet Routing, Web Search Engines, Databases, Data Mining, Scientific Computing, Geographical Information Systems, Com- putational Geometry, Computational Biology, VLSI Floorplanning and Layout, Computer Graphics and Image Processing. Bookmarks Handbook of DATA STRUCTURES and APPLICATIONS Dedication Preface About the Editors Contributors Contents Part I: Fundamentals Chapter 1: Analysis of Algorithms 1.1 Introduction 1.2 Operation Counts 1.3 Step Counts 1.4 Counting Cache Misses 1.4.1 A Simple Computer Model 1.4.2 Effect of Cache Misses on Run Time 1.4.3 Matrix Multiplication 1.5 Asymptotic Complexity 1.5.1 Big Oh Notation (O) 1.5.2 Omega (omega) and Theta (theta) Notations 1.5.3 Little Oh Notation (o) 1.6 Recurrence Equations 1.6.1 Substitution Method 1.6.2 Table-Lookup Method 1.7 Amortized Complexity 1.7.1 What is Amortized Complexity? 1.7.2 Maintenance Contract Problem Definition Worst-Case Method Aggregate Method Accounting Method Potential Method 1.7.3 The McWidget Company Problem Definition Worst-Case Method Aggregate Method Accounting Method Potential Method 1.7.4 Subset Generation Problem Definition Worst-Case Method Aggregate Method Accounting Method Potential Method 1.8 Practical Complexities Acknowledgment References Chapter 2: Basic Structures 2.1 Introduction 2.2 Arrays 2.2.1 Operations on an Array 2.2.2 Sorted Arrays 2.2.3 Array Doubling 2.2.4 Multiple Lists in a Single Array 2.2.5 Heterogeneous Arrays 2.2.6 Multidimensional Arrays Row- or Column Major Representation Array of Arrays Representation Irregular Arrays 2.2.7 Sparse Matrices 2.3 Linked Lists 2.3.1 Chains 2.3.2 Circular Lists 2.3.3 Doubly Linked Circular Lists 2.3.4 Generalized Lists 2.4 Stacks and Queues 2.4.1 Stack Implementation 2.4.2 Queue Implementation Acknowledgments References Chapter 3: Trees 3.1 Introduction 3.2 Tree Representation 3.2.1 List Representation 3.2.2 Left Child-Right Sibling Representation 3.2.3 Binary Tree Representation 3.3 Binary Trees and Properties 3.3.1 Properties 3.3.2 Binary Tree Representation 3.4 Binary Tree Traversals 3.4.1 Inorder Traversal 3.4.2 Preorder Traversal 3.4.3 Postorder Traversal 3.4.4 Level Order Traversal 3.5 Thread
用户评论
null
收藏