Preface xxi
Acknowledgments . xxiii
Introduction xxv
PART I: THE BASICS 1
Chapter 1: Using JavaScript . 3
Chapter 2: Functional Programming in JavaScript . 23
Chapter 3: Abstract Data Types 37
Chapter 4: Analyzing Algorithms 49
PART II: ALGORITHMS . 61
Chapter 5: Designing Algorithms 63
Chapter 6: Sorting 91
Chapter 7: Selecting 121
Chapter 8: Shuffling and Sampling . 137
Chapter 9: Searching 159
PART III: DATA STRUCTURES 175
Chapter 10: Lists . 177
Chapter 11: Bags, Sets, and Maps . 203
Chapter 12: Binary Trees . 235
Chapter 13: Trees and Forests 283
Chapter 14: Heaps . 317
Chapter 15: Extended Heaps . 345
Chapter 16: Digital Search Trees 387
Chapter 17: Graphs 425
Chapter 18: Immutability and Functional Data Structures 469
Answer Key 487
Bibliography 545
Index . 549
Think you know JavaScript? Think again. This isn’t your typical coding book—it’s a deep dive into the powerful world of data structures and algorithms that will transform the way you approach problem solving in JavaScript.
Whether you’re a frontend developer tackling complex applications, a backend engineer building scalable systems, or a programmer preparing for technical interviews, this book will revolutionize the way you code.
Modern JavaScript techniques: Use the latest language features and functional programming principles for cleaner, more efficient code.
Performance-focused approach: Analyze and optimize algorithms using Big O notation.
Essential algorithms explained: Implement and fine-tune core algorithms like quicksort, merge sort, digital search, and binary search.
Algorithm design strategies: Solve challenging problems with techniques like recursion, dynamic programming, backtracking, and brute-force search.
Advanced data structures: Explore complex structures such as binary search trees, heaps, and graphs.
Each chapter is carefully crafted with clear, no-nonsense explanations of complex concepts, real-world coding examples, and challenging questions (with answers at the end) to reinforce your understanding.
Ready to break free from ordinary JavaScript? Whether your aim is to build cutting-edge web applications, optimize critical systems, or land your dream job, this book equips you with the advanced JavaScript knowledge that sets true experts apart.