The Handbook of Data Structures and Applications was first published over a decade ago. This second edition aims to update the first by focusing on areas of research in data structures that have seen significant progress. While the discipline of data structures has not matured as rapidly as other areas of computer science, the book aims to update those areas that have seen advances.
Retaining the seven-part structure of the first edition, the handbook begins with a review of introductory material, followed by a discussion of well-known classes of data structures, Priority Queues, Dictionary Structures, and Multidimensional structures. The editors next analyze miscellaneous data structures, which are well-known structures that elude easy classification. The book then addresses mechanisms and tools that were developed to facilitate the use of data structures in real programs. It concludes with an examination of the applications of data structures.
Four new chapters have been added on Bloom Filters, Binary Decision Diagrams, Data Structures for Cheminformatics, and Data Structures for Big Data Stores, and updates have been made to other chapters that appeared in the first edition.
The Handbook is invaluable for suggesting new ideas for research in data structures, and for revealing application contexts in which they can be deployed. Practitioners devising algorithms will gain insight into organizing data, allowing them to solve algorithmic problems more efficiently.
Part 1: Introduction 1. Analysis of Algorithms 2. Basic Structures 3. Trees 4. Graphs Part 2: Priority Queues 5. Leftist Trees 6. Skew Heaps 7. Binomial, Fibonacci,and Pairing Heaps 8. Double-Ended Priority Queues Part 3: Dictionary Structures 9. Hash Tables 10. Bloom Filter and Its Variants 11. Balanced Binary Search Trees 12. Finger Search Trees 13. Splay Trees 14. Randomized Dictionary Structures 15. Trees with Minimum Weighted Path Length 16. B Trees Part 4: Multidimensional/Spatial Structures 17. Multidimensional Spatial Data Structs 18. Planar Straight Line Graphs 19. Interval, Segment, Range, and Priority Search Trees 20. Quadtrees and Octrees 21. Binary Space Partitioning Trees 22. R-trees 23. Multidimensional and Spatial Structures 24. Kinetic Data Structures 25. Online Dictionary Structures 26. Cuttings 27. Approximate Geometric Query Structures 28. Geometric and Spatial Data Structures in External Memory Part 5: Miscellaneous 29. Tries 30. Suffix Trees and Suffix Arrays 31. String Search 32. Binary Decision Diagrams 33. Persistent Data Structures 34. Data Structures for Sets 35. Cache-Oblivious Data Structures 36. Dynamic Trees 37. Dynamic Graphs 38. Succinct Representation of Data Structures 39. Randomized Graph Data-Structures for Approximate Shortest Paths 40.Searching and Priority Queues in o(log n) Time Part 6: Data Structures in Langs & Libraries 41. Functional Data Structures 42. LEDA, a Platform for Combinatorial and Geometric Computing 43. Data Structures in C++44. Data Strauctures in JDSL 45. Data Structure Visualization 46. Drawing Trees 47. Drawing Graphs 48. Concurrent Data Structures Part 7: Applications 49. IP Router Tables 50. Multi-Dimensional Packet Classification 51. Data Structures in Web Information Retrieval 52. The Web as a Dynamic Graph 53. Layout Data Structures (Dinesh P. Mehta) 54. Floorplan Representation in VLSI 55. Computer Graphics 56. Geographic Information Systems 57. Collision Detection 58. Image Data Structures 59. Computational Biology 60. Data Structures for Cheminformatics 61. Elimination Structures in Scientific 62. Data Structures for Databases 63. Data Structures for Big Data Stores 64. Data Mining 65. Computational Geometry: Fundamental Structures 66. Computational Geometry: Proximity and Location 67. Computational Geometry: Generalized (or Colored) Intersection Searching
This handbook is a voluminous collection of 67 articles on a variety of data structures and their applications. Many articles are written by well-known experts with a focus on explaining basic ideas and surveying results. Overall, one gets an interesting overview of this central area of computer science.
-Peter Sanders, Zentralblatt MATH